PyInstaller не может проверить зависимости сборки

Я пытаюсь создать модуль 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

См. также:  Упаковка модели SpaCy с Pyinstaller: E050 Не могу найти модель
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 6
  1. NerdWizard73

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

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

    Перейдите в свой каталог 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
    

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

  2. ErdoganOnal

    Старый вопрос, но, возможно, кто-то может столкнуться с той же проблемой. Я нашел решение, и оно у меня работает.

    Установка этого модуля решает проблему

    pip install cffi
    

    После установки снова попробовал сборку. Выдает предупреждение об ошибке.

    Traceback (most recent call last):
      File "<string>", line 2, in <module>
    ModuleNotFoundError: No module named 'win32com'
    Traceback (most recent call last):
      File "<string>", line 2, in <module>
    ModuleNotFoundError: No module named 'win32com'
    

    Вы можете исправить это предупреждение, установив pywin32

    pip install pywin32
    

    Надеюсь, это помогло кому-то другому.

    У меня возникла та же проблема, что и у OP, и cffi тоже был моим виновником, но он уже был установлен. Мое решение состояло в том, чтобы обновить его с 1.12.3 до 1.14.1 с помощью «pip install —upgrade cffi». Итак, спасибо, что поставили меня на этот трек! person Micheal Espinola; 05.08.2020

  3. Evair Silvester

    Я решил это в Windows в командной строке, сначала перейдите с помощью компакт-диска, пока не дойдете до папки Scripts:

    C: \ Users \ john \ Envs \ yourEnv \ Scripts

    Вы увидите файл pyinstaller.exe.

    Затем вызовите его в cmd:

        pyinstaller --onefile --clean --name myApp "C:\path\to\your\script\example.py"
    

    Полученные папки будут Dist и Build, и они будут находиться на первом пути, который вы видите здесь C: \ Users \ john \ Envs \ yourEnv \ Scripts. Файл .exe находится на Dist.

  4. SUBRAMANIAN RAMAJAYAM

    У меня была аналогичная проблема. Вышеупомянутые методы не работали. Я использовал метод env, (env) C: \ Users \ RAMAJAYAM ›python -m PyInstaller —name tkinterapp1.py C: \ Users \ RAMAJAYAM \ tkinterapp1.py и успешно скомпилировал. Exe отлично работает.

  5. nimig18

    Хорошо, я думаю, что понял, что pip3 install pyinstaller устанавливал его в каталог ~\AppData\Roaming\Python\Python37\Scripts. Пришлось удалить через pip3 uninstall pyinstaller. Затем перейдите в корневой каталог установки python3 и запустите python.exe -m pip install pyinstaller.

    Не знаю, что это значит, но я больше не получаю следующую ошибку:

    PyInstaller cannot check for assembly dependencies.
    Please install pywin32-ctypes.
    
    pip install pywin32-ctypes
    
  6. Ben Etherington

    С другой стороны, похоже, что PyInstaller не любит работать в виртуальной среде. deactivateing Venv, затем pip install pyinstaller и pyinstaller pyinstaller.spec работали на меня.

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: