Компиляция скрипта Python с помощью Pyinstaller через терминал - PullRequest
0 голосов
/ 03 мая 2018

Я использую macOS и Anaconda 3 для управления своими библиотеками и написания скрипта.

Я хочу создать исполняемый файл для моего скрипта.

Я использую Pyinstaller в Терминале для запуска команды:

pyinstaller --onefile /Directory/file.py

Однако Терминал возвращает эту ошибку:

File "/anaconda3/lib/python3.6/site-packages/PyInstaller/hooks/hook-sysconfig.py", line 42, in <module> hiddenimports = [sysconfig._get_sysconfigdata_name()] TypeError: _get_sysconfigdata_name() missing 1 required positional argument: 'check_exists'

Как я могу решить эту проблему; Спасибо за помощь.

Ответы [ 2 ]

0 голосов
/ 14 апреля 2019

conda update conda у меня не сработало, поэтому я просто опубликую свое решение здесь.

Сначала перейдите в интерактивную оболочку python, выполните

$ python
>> import sysconfig
>> print(sysconfig.__file__)

Это должно дать вам местоположение файла для sysconfig. Затем вам нужно перейти к этому файлу и отредактировать исходный код, для меня это был /opt/conda/envs/test/lib/python3.6/sysconfig.py, затем найти функцию и изменить сигнатуру функции для _get_sysconfigdata_name, что я сделал, установив check_exists по умолчанию на True.

0 голосов
/ 03 мая 2018

Это известная проблема в старых версиях Anaconda. Вы можете попробовать обновить Anaconda (в терминале conda):

conda update conda

Вы также можете попробовать удалить sysconfig._get_sysconfigdata_name() из списка hiddenimports в вашем файле .spec и вместо этого добавить import sysconfig в свой файл .py.

Следующая документация по проблеме на странице pyinstaller github может быть полезна: https://github.com/pyinstaller/pyinstaller/issues/3192

...