#python #tkinter #pyinstaller
#python #tkinter #pyinstaller
Вопрос:
Я скомпилировал свой скрипт с помощью pyinstaller и обнаружил, что окна tkinter появляются и исчезают очень быстро, я попытался упростить следующий код, который обычно работает в среде ide python
from tkinter.filedialog import askopenfilename
sourcefilename = askopenfilename()
Затем я компилирую его в виртуальной среде с установленным tkinter
(scrapytest) λ pyinstaller test.py
184 INFO: PyInstaller: 4.0
185 INFO: Python: 3.8.6
186 INFO: Platform: Windows-10-10.0.18362-SP0
187 INFO: wrote C:UsersTakAppDataLocalPackagesPythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0LocalCachelocal-packagesPython38ScriptsscrapytestScriptstest.spec
271 INFO: UPX is available.
275 INFO: Extending PYTHONPATH with paths
['C:\Users\Tak\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\Scripts\scrapytest\Scripts',
'C:\Users\Tak\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\Scripts\scrapytest\Scripts']
299 INFO: checking Analysis
334 INFO: Building because C:UsersTakAppDataLocalPackagesPythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0LocalCachelocal-packagesPython38ScriptsscrapytestScriptstest.py changed
334 INFO: Initializing module dependency graph...
343 INFO: Caching module graph hooks...
378 INFO: Analyzing base_library.zip ...
4191 INFO: Processing pre-find module path hook distutils from 'c:\users\tak\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\scripts\scrapytest\lib\site-packages\PyInstaller\hooks\pre_find_module_path\hook-distutils.py'.
4195 INFO: distutils: retargeting to non-venv dir 'C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib'
6881 INFO: Caching module dependency graph...
7106 INFO: running Analysis Analysis-00.toc
7111 INFO: Adding Microsoft.Windows.Common-Controls to dependent assemblies of final executable
required by c:userstakappdatalocalpackagespythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0localcachelocal-packagespython38scriptsscrapytestscriptspython.exe
7155 INFO: Analyzing C:UsersTakAppDataLocalPackagesPythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0LocalCachelocal-packagesPython38ScriptsscrapytestScriptstest.py
7158 INFO: Processing module hooks...
7158 INFO: Loading module hook 'hook-distutils.py' from 'c:\users\tak\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\scripts\scrapytest\lib\site-packages\PyInstaller\hooks'...
7162 INFO: Loading module hook 'hook-encodings.py' from 'c:\users\tak\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\scripts\scrapytest\lib\site-packages\PyInstaller\hooks'...
7598 INFO: Loading module hook 'hook-sysconfig.py' from 'c:\users\tak\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\scripts\scrapytest\lib\site-packages\PyInstaller\hooks'...
7600 INFO: Loading module hook 'hook-xml.py' from 'c:\users\tak\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\scripts\scrapytest\lib\site-packages\PyInstaller\hooks'...
7890 INFO: Loading module hook 'hook-_tkinter.py' from 'c:\users\tak\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\scripts\scrapytest\lib\site-packages\PyInstaller\hooks'...
7940 WARNING: lib not found: python38.dll dependency of C:Program FilesWindowsAppsPythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0DLLs_tkinter.pyd
8739 INFO: checking Tree
9124 INFO: checking Tree
9251 INFO: Looking for ctypes DLLs
9254 INFO: Analyzing run-time hooks ...
9258 INFO: Including run-time hook 'c:\users\tak\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\scripts\scrapytest\lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth_multiprocessing.py'
9262 INFO: Including run-time hook 'c:\users\tak\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\scripts\scrapytest\lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth__tkinter.py'
9269 INFO: Looking for dynamic libraries
9315 WARNING: lib not found: python38.dll dependency of C:Program FilesWindowsAppsPythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0DLLsselect.pyd
9354 WARNING: lib not found: python38.dll dependency of C:Program FilesWindowsAppsPythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0DLLsunicodedata.pyd
9403 WARNING: lib not found: python38.dll dependency of C:Program FilesWindowsAppsPythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0DLLs_socket.pyd
9447 WARNING: lib not found: python38.dll dependency of C:Program FilesWindowsAppsPythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0DLLs_overlapped.pyd
9508 WARNING: lib not found: python38.dll dependency of C:Program FilesWindowsAppsPythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0DLLs_ssl.pyd
9529 WARNING: lib not found: python38.dll dependency of C:Program FilesWindowsAppsPythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0DLLs_asyncio.pyd
9562 WARNING: lib not found: python38.dll dependency of C:Program FilesWindowsAppsPythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0DLLs_queue.pyd
9632 WARNING: lib not found: python38.dll dependency of C:Program FilesWindowsAppsPythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0DLLs_ctypes.pyd
9674 WARNING: lib not found: python38.dll dependency of C:Program FilesWindowsAppsPythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0DLLs_multiprocessing.pyd
9728 WARNING: lib not found: python38.dll dependency of C:Program FilesWindowsAppsPythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0DLLspyexpat.pyd
9783 WARNING: lib not found: python38.dll dependency of C:Program FilesWindowsAppsPythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0DLLs_decimal.pyd
9830 WARNING: lib not found: python38.dll dependency of C:Program FilesWindowsAppsPythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0DLLs_hashlib.pyd
9872 WARNING: lib not found: python38.dll dependency of C:Program FilesWindowsAppsPythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0DLLs_lzma.pyd
9922 WARNING: lib not found: python38.dll dependency of C:Program FilesWindowsAppsPythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0DLLs_bz2.pyd
9973 WARNING: lib not found: python38.dll dependency of C:Program FilesWindowsAppsPythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0DLLs_tkinter.pyd
10398 WARNING: lib not found: api-ms-win-core-datetime-l1-1-0.dll dependency of C:WINDOWSsystem32ucrtbase.dll
10407 WARNING: lib not found: api-ms-win-core-debug-l1-1-0.dll dependency of C:WINDOWSsystem32ucrtbase.dll
10420 WARNING: lib not found: api-ms-win-core-heap-l1-1-0.dll dependency of C:WINDOWSsystem32ucrtbase.dll
10430 WARNING: lib not found: api-ms-win-core-profile-l1-1-0.dll dependency of C:WINDOWSsystem32ucrtbase.dll
10439 WARNING: lib not found: api-ms-win-core-console-l1-1-0.dll dependency of C:WINDOWSsystem32ucrtbase.dll
10450 WARNING: lib not found: api-ms-win-core-processthreads-l1-1-0.dll dependency of C:WINDOWSsystem32ucrtbase.dll
10464 WARNING: lib not found: api-ms-win-core-namedpipe-l1-1-0.dll dependency of C:WINDOWSsystem32ucrtbase.dll
10475 WARNING: lib not found: api-ms-win-core-libraryloader-l1-1-0.dll dependency of C:WINDOWSsystem32ucrtbase.dll
10492 WARNING: lib not found: api-ms-win-core-synch-l1-1-0.dll dependency of C:WINDOWSsystem32ucrtbase.dll
10502 WARNING: lib not found: api-ms-win-core-interlocked-l1-1-0.dll dependency of C:WINDOWSsystem32ucrtbase.dll
10512 WARNING: lib not found: api-ms-win-core-file-l1-1-0.dll dependency of C:WINDOWSsystem32ucrtbase.dll
10523 WARNING: lib not found: api-ms-win-core-handle-l1-1-0.dll dependency of C:WINDOWSsystem32ucrtbase.dll
10534 WARNING: lib not found: api-ms-win-core-string-l1-1-0.dll dependency of C:WINDOWSsystem32ucrtbase.dll
10544 WARNING: lib not found: api-ms-win-core-errorhandling-l1-1-0.dll dependency of C:WINDOWSsystem32ucrtbase.dll
10558 WARNING: lib not found: api-ms-win-core-processenvironment-l1-1-0.dll dependency of C:WINDOWSsystem32ucrtbase.dll
10572 WARNING: lib not found: api-ms-win-core-sysinfo-l1-1-0.dll dependency of C:WINDOWSsystem32ucrtbase.dll
10582 WARNING: lib not found: api-ms-win-core-memory-l1-1-0.dll dependency of C:WINDOWSsystem32ucrtbase.dll
10593 WARNING: lib not found: api-ms-win-core-util-l1-1-0.dll dependency of C:WINDOWSsystem32ucrtbase.dll
10603 WARNING: lib not found: api-ms-win-core-rtlsupport-l1-1-0.dll dependency of C:WINDOWSsystem32ucrtbase.dll
10657 INFO: Looking for eggs
10657 INFO: Python library not in binary dependencies. Doing additional searching...
10668 INFO: Using Python library
10669 INFO: Found binding redirects:
[]
10673 INFO: Warnings written to C:UsersTakAppDataLocalPackagesPythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0LocalCachelocal-packagesPython38ScriptsscrapytestScriptsbuildtestwarn-test.txt
10732 INFO: Graph cross-reference written to C:UsersTakAppDataLocalPackagesPythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0LocalCachelocal-packagesPython38ScriptsscrapytestScriptsbuildtestxref-test.html
10802 INFO: checking PYZ
10817 INFO: Building because toc changed
10817 INFO: Building PYZ (ZlibArchive) C:UsersTakAppDataLocalPackagesPythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0LocalCachelocal-packagesPython38ScriptsscrapytestScriptsbuildtestPYZ-00.pyz
11525 INFO: Building PYZ (ZlibArchive) C:UsersTakAppDataLocalPackagesPythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0LocalCachelocal-packagesPython38ScriptsscrapytestScriptsbuildtestPYZ-00.pyz completed successfully.
11543 INFO: checking PKG
11555 INFO: Building because C:UsersTakAppDataLocalPackagesPythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0LocalCachelocal-packagesPython38ScriptsscrapytestScriptsbuildtestPYZ-00.pyz changed
11555 INFO: Building PKG (CArchive) PKG-00.pkg
11615 INFO: Building PKG (CArchive) PKG-00.pkg completed successfully.
11617 INFO: Bootloader c:userstakappdatalocalpackagespythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0localcachelocal-packagespython38scriptsscrapytestlibsite-packagesPyInstallerbootloaderWindows-64bitrun.exe
11618 INFO: checking EXE
11630 INFO: Rebuilding EXE-00.toc because pkg is more recent
11630 INFO: Building EXE from EXE-00.toc
11633 INFO: Appending archive to EXE C:UsersTakAppDataLocalPackagesPythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0LocalCachelocal-packagesPython38ScriptsscrapytestScriptsbuildtesttest.exe
11645 INFO: Building EXE from EXE-00.toc completed successfully.
11651 INFO: checking COLLECT
11681 INFO: Building COLLECT COLLECT-00.toc
18778 INFO: Building COLLECT COLLECT-00.toc completed successfully.
Созданный exe-файл не смог открыть окно tkinter, чтобы я мог выбрать какой-либо файл.
Любые советы и комментарии будут оценены, спасибо.
Комментарии:
1. Вы не вызываете
mainloop
, что очень важно для приложения tkinter.2. @BryanOakley Даже если
mainloop()
отсутствует, опубликованный код все равно должен показыватьaskopenfilename()
диалоговое окно с неявно созданным корневым окном.3. Просто для подтверждения, используя exe в
dist
папке правильно? Также какая строка кода pyinstaller используется.4. @CoolCloud Да, exe находится в
dist
строке кода pyinstaller, вы имеете в виду эту команду?pyinstaller test.py
5. В сообщениях журнала pyinstaller есть предупреждения о том, что библиотека не найдена, одно из них
_tkinter.pyd
. Таким образом, сгенерированный exe-файл не должен работать.