Я пытаюсь создать модуль Tkinter GUI с опцией сборки для сборки Exes после того, как пользователь введет некоторые входные данные, и я не хочу, чтобы он устанавливал python и pyinstaller, чтобы иметь возможность скомпилировать код в Exe.
Использование Python 3.6.0
Я сделал 2 скрипта python с первым именем compiler.py и другим hello.py hello.pyprint("Hello World")
compiler.py
import PyInstaller.__main__
import ctypes
import win32ctypes
from win32ctypes import pywin32
from win32ctypes.pywin32 import pywintypes
import os
def compiling():
PyInstaller.__main__.run([
# '--name=%s' % package_name,
'--onefile',
'--windowed',
# '--add-binary=%s' % os.path.join('resource', 'path', '*.png'),
# '--add-data=%s' % os.path.join('resource', 'path', '*.txt'),
# '--icon=%s' % os.path.join('resource', 'path', 'icon.ico'),
os.path.join('hello.py'), # my_package is a Directory
# '--version-file=%s' % os.path.join('assembly.txt'),
])
compiling()
когда я пытаюсь скомпилировать compiler.py с помощью pyinstaller, он успешно компилируется с помощью — ›pyinstaller —onefile —console compiler.py
но когда я пытаюсь запустить exe, он выдает
PyInstaller cannot check for assembly dependencies.
Please install pywin32-ctypes.
pip install pywin32-ctypes
Что я пробовал? 1-я успешно установил pywin32-ctypes 2-Пытался скомпилировать compiler.py с другими альтернативами, кроме pyinstaller 3-cx-freeze & nuitka, оба они выдают одну и ту же ошибку, когда я запускаю после компиляции. 4- попробовал использовать Python 3.7.5 на другом компьютере, запустите новый, бросьте ту же ошибку, поэтому я выбираю pyinstaller, потому что он может создавать 1 EXE
https://github.com/pyinstaller/pyinstaller/issues/3892
https://github.com/pyinstaller/pyinstaller/issues/3793
Невозможно запустить PyInstaller — установите PyWin32 или pywin32-ctypes
Все, что не удалось, это то, что я делаю неправильно, или проблема с Pyinstaller
У меня была такая же проблема.
Для меня исправление заключалось в изменении пары строк в файле compat.py Pyinstaller.
Перейдите в свой каталог python -> Lib -> site-packages -> Pyinstaller.
Откройте compat.py и найдите следующее:
Измените оба этих оператора импорта, чтобы импортировать сами модули, а не пытаться получить их из win32ctypes.pywin32.
Надеюсь, это поможет!
Старый вопрос, но, возможно, кто-то может столкнуться с той же проблемой. Я нашел решение, и оно у меня работает.
Установка этого модуля решает проблему
После установки снова попробовал сборку. Выдает предупреждение об ошибке.
Вы можете исправить это предупреждение, установив pywin32
Надеюсь, это помогло кому-то другому.
У меня возникла та же проблема, что и у OP, и cffi тоже был моим виновником, но он уже был установлен. Мое решение состояло в том, чтобы обновить его с 1.12.3 до 1.14.1 с помощью «pip install —upgrade cffi». Итак, спасибо, что поставили меня на этот трек! — person Micheal Espinola; 05.08.2020
Я решил это в Windows в командной строке, сначала перейдите с помощью компакт-диска, пока не дойдете до папки Scripts:
C: \ Users \ john \ Envs \ yourEnv \ Scripts
Вы увидите файл pyinstaller.exe.
Затем вызовите его в cmd:
Полученные папки будут Dist и Build, и они будут находиться на первом пути, который вы видите здесь C: \ Users \ john \ Envs \ yourEnv \ Scripts. Файл .exe находится на Dist.
У меня была аналогичная проблема. Вышеупомянутые методы не работали. Я использовал метод env, (env) C: \ Users \ RAMAJAYAM ›python -m PyInstaller —name tkinterapp1.py C: \ Users \ RAMAJAYAM \ tkinterapp1.py и успешно скомпилировал. Exe отлично работает.
Хорошо, я думаю, что понял, что
pip3 install pyinstaller
устанавливал его в каталог~\AppData\Roaming\Python\Python37\Scripts
. Пришлось удалить черезpip3 uninstall pyinstaller
. Затем перейдите в корневой каталог установки python3 и запуститеpython.exe -m pip install pyinstaller
.Не знаю, что это значит, но я больше не получаю следующую ошибку:
С другой стороны, похоже, что PyInstaller не любит работать в виртуальной среде.
deactivate
ing Venv, затемpip install pyinstaller
иpyinstaller pyinstaller.spec
работали на меня.