Pynstaller сгенерированный exe не работает должным образом - PullRequest
0 голосов
/ 09 октября 2018

Я пытаюсь упаковать написанную мной программу / скрипт на python ( pastebin link ), которая включает графический интерфейс с использованием модуля tkinter.Я решил использовать Pyinstaller, и в соответствии с ними он поддерживает Python 3.7.

В настоящее время попытка запустить pyinstaller, по-видимому, не создает проблем при упаковке.После того, как я пытаюсь запустить исполняемый файл, происходит сбой.Один я генерирую один вариант файла исполняемого файла, он просто открывает командную строку и зависает.Когда я выполняю команду non one file, она сразу открывается и закрывается, но выдает ошибку, которую я не вижу из-за того, как быстро она закрывается.Я открыл исполняемый файл прямо в cmd, чтобы обойти это, и он выдает мне эту ошибку:

C:\Users\mqian\Desktop\CGIProject\autoprimercode\windowsversion\build\windowsaut
oprimer>windowsautoprimer.exe
Error loading Python DLL 'C:\Users\mqian\Desktop\CGIProject\autoprimercode\windo
wsversion\build\windowsautoprimer\python37.dll'.
LoadLibrary: The specified module could not be found.

Я не знаю, должен ли он искать python37.dll в этой папке,но тем не менее, у меня была блестящая идея скопировать dll из директории python в указанную трассировкой (очевидно, это не должно быть так).И теперь я получаю следующую ошибку:

C:\Users\mqian\Desktop\CGIProject\autoprimercode\windowsversion\build\windowsaut
oprimer>windowsautoprimer.exe
Traceback (most recent call last):
  File "site-packages\PyInstaller\loader\rthooks\pyi_rth__tkinter.py", line 28,
in <module>
FileNotFoundError: Tcl data directory "C:\Users\mqian\Desktop\CGIProject\autopri
mercode\windowsversion\build\windowsautoprimer\tcl" not found.
[6600] Failed to execute script pyi_rth__tkinter

Бесконечное количество поисков в Google не принесло ничего конкретного.Вот некоторые соответствующие ссылки, которые, как я думал, могут помочь.

https://github.com/pyinstaller/pyinstaller/issues/2149

https://www.xoolive.org/2015/09/09/issues-on-loading-dlls-with-pyinstaller.html

PyInstaller: «Нет модуля с именем Tkinter»

https://github.com/pyinstaller/pyinstaller/issues/2495

Ошибка при загрузке python27.dll Ошибка для pyinstaller

и вот мой файл спецификации:

# -*- mode: python -*-

block_cipher = None


a = Analysis(['windowsautoprimer.py'],
             pathex=['C:\\Users\\mqian\\Desktop\\CGIProject\\autoprimercode\\windowsversion'],
             binaries=[],
             datas=[],
             hiddenimports=['tkinter', 'Tkinter'],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          [],
          exclude_binaries=True,
          name='windowsautoprimer',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          console=True )
coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               strip=False,
               upx=True,
               name='windowsautoprimer')

1 Ответ

0 голосов
/ 10 января 2019

Была такая же проблема, но потом я понял, что я случайно попытался выполнить файл в папке build вместо папки dist.

Похоже, что вы могли сделать ту же ошибку из своего обратного следа, поэтому посмотрите, не исправляет ли использование исполняемого файла в dist

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...