Python PyInstaller создал исполняемый файл не удалось запустить EXE Ошибка: не могу найти Temp \\ _ MEI175682 (файл данных) - PullRequest
0 голосов
/ 23 апреля 2019

Использование PyInstaller создало exe для моего скрипта, и при запуске exe выдает следующую ошибку, где, как будто я запускаю .py файл, проблем не обнаружено.

FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\my_username\\AppData\\Local\\Temp\\_MEI175682\\resources\\template.json' [13396] Failed to execute script my_script

Я предоставил все необходимые флаги для данных, которые будут включены PyInstaller, и создание exe прошло успешно.

Я использовал флаг --add-data и поле data в файле спецификации.

[Редактировать эту строку и добавить точную команду, которую вы дали для создания exe]

Сделал глубокое погружение в ошибку, указав путь к каталогу, где такой каталог или файл не существует. Не удалось найти Temp \ _MEI175682

'C:\\Users\\my_username\\AppData\\Local\\Temp\\_MEI175682\\resources\\template.json'

Pyinstaller установлен в каталоге. \ Scripts \, поэтому pyinstaller ищет файл .json в указанном выше каталоге, где этот файл не существует.

Также файл (template.json ') находится в каталоге. \ Scripts \ template.json.

Чтобы решить эту проблему, что является лучшим способом? 1. Нужно ли что-то добавить в переменную окружения, чтобы решить эту проблему? 2. Должен ли я создать отдельный файл .exe, запустив скрипт только из папки. \ Scripts \ pyinstaller? 3. Добавление каких-либо подробностей в файл .spec или добавление определенных деталей в файл .spec после его создания pyinstaller поможет решить эту проблему?

Любая помощь, которая решит проблему с деталями очень ценится. Спасибо заранее. Заранее спасибо.

1 Ответ

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

Это будет простое и понятное решение, проверьте и понравитесь и проголосуйте.

При появлении следующей ошибки.

IOError: [Errno 2] No such file or directory: 'C:\\Users\\username\\AppData\\Local\\Temp\\_MEI502322\\resources\\template.json'

Это решение протестировано под Python 2.7.10 и Pyinstaller 3.0.

Поместите этот файл в папку скриптов. где ваш .py скрипт доступен пример 123.py

Добавьте этот хук в ваш дистрибутив, это означает, что добавьте его ниже в новый файл, например, xyx.py, и сохраните этот файл там, где доступен файл 123.py

from PyInstaller.utils.hooks import collect_data_files

#Instruct pyinstaller to collect data files from resources package.
datas = collect_data_files('resources')

, поскольку это ошибка C: \ Users \ my_username \ AppData \ Local \ Temp \ _MEI175682 \ resources \ template.json " resources " - это пакет, из которого вы должны взять файл данных.

Теперь запустите следующее в командном окне из папки 123.py

pyinstaller --onefile --additional-hooks-dir =. 123.py

exe будет создан, запустите exe и проверьте, что он принимает файл данных.

благодаря Panda1100

...