Сценарий Pyinstaller `` не удалось выполнить '' - PullRequest
0 голосов
/ 26 мая 2020

Я новичок в программировании. Я сделал сценарий python. Он работает без ошибок в pycharm. Используя pyinstaller, я попытался сделать exe. Когда я запускаю exe в папке build или dist или даже через командную строку, он выдает ошибку «Не удалось выполнить главный сценарий»

Я прикрепляю ссылку на файл предупреждений:

https://drive.google.com/open?id=1cDQ2KGId0B8K9Qi1bWPIhL55hQO0dM-z

Пожалуйста, помогите!

1 Ответ

0 голосов
/ 26 мая 2020

Для каждой виртуальной среды существует один сценарий pip. Поэтому, когда вы устанавливаете модуль python, он устанавливается в каталог projectname \ venv \ Lib \ site-packages.

Когда вы запускаете pyinstaller из терминала для создания исполняемого файла, pyinstaller проверяет зависимости в Sys.path . Но этот путь не включает каталог projectname \ venv \ Lib \ site-packages. Поэтому pyinstaller не может найти эти конкретные зависимости. В таких случаях он выдает предупреждения. Это предупреждение можно найти в 'warnname.txt' рядом с исполняемым файлом.

Как настроить pycharm для запуска pyinstaller

  1. Сначала вам нужно добавить pyinstaller в интерпретатор проекта. enter image description here
  2. Затем вам необходимо настроить рабочие конфигурации. enter image description here enter image description here

Имя скрипта : путь к вашему python скрипту

рабочий путь : расположение проекта

Оставьте параметры интерпретатора, как на изображении.

Запустите pyinstaller. Вы можете найти свой .exe в каталоге dist.

Если ошибка «Модуль не найден» все еще сохраняется. Вы можете добавить скрытый перехватчик импорта и указать имена отсутствующих модулей. Перейдите к Project Path \ venv \ Lib \ site-packages \ PyInstaller \ hooks и создайте новый « hook- pandas .py"(hook-modulename.py) и создайте список скрытых модулей импорта, например:

hiddenimports = ['pandas._libs.tslibs.np_datetime','pandas._libs.tslibs.nattype','pandas._libs.skiplist']
И снова запустите pyinstaller, и теперь он должен работать.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...