PyInstaller не может проверить зависимости сборки - PullRequest
0 голосов
/ 08 января 2020

** Я пытаюсь сделать модуль tkinter gui с возможностью сборки для сборки Exes после того, как usr поместил некоторые входные данные, и я не хочу, чтобы он установил python и pyinstaller, чтобы иметь возможность скомпилировать код в Exe **

Используя Python 3.6.0

Я создал 2 python сценариев с именем compiler.py и другими hello.py hello.py print("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 на другом компьютере, запустить новый fre sh Выдает ту же ошибку по той причине, что я выбрал pyinstaller, потому что он может собрать 1 EXE

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

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

Невозможно запустить PyInstaller - «Пожалуйста, установите PyWin32 или pywin32-ctypes»

Все те, которые не выполнены как Ну, я что-то не так делаю или проблема с Pyinstaller

1 Ответ

0 голосов
/ 12 февраля 2020

У меня была точно такая же проблема.

Исправление для меня заключалось в редактировании пары строк в файле Pyatstaller compat.py.

Перейдите в каталог python -> Lib -> site-packages -> Pyinstaller.

Откройте compat.py и найдите следующее:

if is_win:
    try:
        from win32ctypes.pywin32 import pywintypes  # noqa: F401
        from win32ctypes.pywin32 import win32api
    except ImportError:
        # This environment variable is set by seutp.py
        # - It's not an error for pywin32 to not be installed at that point
        if not os.environ.get('PYINSTALLER_NO_PYWIN32_FAILURE'):
            raise SystemExit('PyInstaller cannot check for assembly dependencies.\n'
                         'Please install pywin32-ctypes.\n\n'
                         'pip install pywin32-ctypes\n')

Измените оба этих оператора импорта, чтобы импортировать сами модули вместо того, чтобы пытаться получить их из win32ctypes.pywin32.

    #from win32ctypes.pywin32 import pywintypes  # noqa: F401
    #from win32ctypes.pywin32 import win32api
    import pywintypes
    import win32api

Надеюсь, это поможет!

...