У меня есть программа командной строки Python с открытым исходным кодом, которая работает на Python 2.7, Python3+ и является кросс-платформенной.
Я пытаюсь проще упаковать его в исполняемый файл для пользователей Windows. Исходный код этого пакета находится на Github здесь: https://github.com/stormpath/stormpath-cli< /а>
Я пытаюсь упаковать свою программу Python с помощью pyinstaller, но у меня возникают проблемы.
Я запускаю следующие команды из окна Windows 8:
$ pyinstaller --onefile setup.py
Это успешно создает для меня файл EXE, но когда я запускаю его, я получаю следующие ошибки:
Traceback (most recent call last):
File "setup.py", line 4, in <module>
File "c:\python27\Lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
exec(bytecode, module.__dict__)
File "site-packages\setuptools\__init__.py", line 160, in <module>
File "site-packages\setuptools\monkey.py", line 93, in patch_all
File "site-packages\setuptools\monkey.py", line 145, in patch_for_msvc_specialized_compiler
File "importlib\__init__.py", line 37, in import_module
ImportError: No module named msvc
Failed to execute script setup
В целях тестирования, чтобы сузить круг проблем, я создал скрипт test.py
, содержащий следующий код:
print('hello, world!')
А затем упаковал это в exe:
$ pyinstaller --onefile test.py
Когда я запускаю этот полученный exe, все работает отлично! Привет, мир выводится, как и ожидалось.
Я считаю, что происходит то, что я не говорю pyinstaller, как правильно «обнаружить», что мой проект является пакетом Python, а не отдельным файловым скриптом.
Я много читал документы и гуглил, но не нашел способа указать пакет для анализа pyinstaller.
Что мне не хватает?
main.py
может потребоваться переименовать в__main__.py
Я полагаю, что эта проблема возникает, потому что setuptools выполняет некоторые динамические системные действия, и когда он связан, он не может получить к нему должный доступ... - person GRAYgoose124   schedule 19.01.2017distutils
, сделать это. - person martineau   schedule 19.01.2017__main__.py
, и теперь вы можете запустить пакет. - person Jonathon Reinhart   schedule 13.04.2017