Я загрузил и установил Pyinstaller через pip с целью создания двоичного файла .exe, который можно было бы использовать отдельно в Windows. Мое приложение / скрипт в основном похоже на this, загружая изображения из определенного субреддита (который доступен без учетной записи Reddit).
Запуск сценария .py через консоль или через мою среду IDE работает должным образом как в Linux, так и в Windows. Согласно документации PRAW, должен быть C:\Users\myName\AppData\praw.ini
файл конфигурации post- PRAW, но в настоящее время он отсутствует в моей системе, но, как я уже упоминал, скрипт отлично работает в интерпретаторе python.
Упаковка его в .exe с помощью Pyinstaller работает нормально, но его запуск (с правами администратора или без них) не выполняется со следующей ошибкой
C:\Users\John\IdeaProjects\monsteraday-subreddit-image-downloader\dist>monsteraday-image-downloader.exe
Traceback (most recent call last):
File "<string>", line 5, in <module>
File "C:\Python27\Lib\site-packages\PyInstaller\loader\pyimod03_importers.py",
line 363, in load_module
exec(bytecode, module.__dict__)
File "C:\Python27\lib\site-packages\praw\__init__.py", line 40, in <module>
from praw.settings import CONFIG
File "C:\Python27\Lib\site-packages\PyInstaller\loader\pyimod03_importers.py",
line 363, in load_module
exec(bytecode, module.__dict__)
File "C:\Python27\lib\site-packages\praw\settings.py", line 47, in <module>
CONFIG = _load_configuration()
File "C:\Python27\lib\site-packages\praw\settings.py", line 45, in _load_configuration .format(locations))
Exception: Could not find config file in any of: [u'C:\\Users\\John\\AppData\\Local\\Temp\\_MEI52442\\praw\\praw.ini', u'C:\\Users\\John\\AppData\Roaming\\praw.ini', u'praw.ini']
monsteraday-image-downloader returned -1
Здесь я должен уточнить, что оба
- запуск
python myscript.py
в консоли - выполнение сгенерированного pyinstaller
myscript.exe
через консоль или двойной щелчок
Были опробованы на той же машине Win8.1 x64 с установленными всеми необходимыми библиотеками (включая PRAW), 32-разрядной версией Python 2.7 (для совместимости целевого .exe) и отсутствующей конфигурацией user praw.ini из / AppData / dir, а global praw.ini правильно в C:\Python27\Lib\site-packages\praw\praw.ini
В документации Pyinstaller упоминается использование файла .spec для включения внешних файлов в обернутый .exe, но я не вижу, как это играет какую-либо роль, поскольку мне уже не хватает / не нужен praw.ini конфигурация. Py2exe также дает те же результаты. Как я могу исправить это и создать простой способ использования этого инструмента?
ini
. В нем говорится, что ini необходим, но global ini всегда существует в месте расположения пакета. Пользовательский ini может отображаться в AppData для переопределения настроек. Если пакет не установлен на машине, глобального ini не будет, и сценарий, вероятно, завершится ошибкой. Вы пытались запустить исполняемый файл на машине, на которой не установлен PRAW? - person Panagiotis Kanavos   schedule 12.11.2015PRAW
перед ошибкой проверил только пользовательское и локальное расположение ini. При проверке исходного кода пакета выясняется, что местоположение не найдено в строке 31 . Это может быть проблемой, связанной с тем, как PyInstaller импортирует пакеты, судя по другим вопросам SO. - person Panagiotis Kanavos   schedule 12.11.2015as admin
эквивалентноsudo
, он не дает вам дополнительных разрешений. - person Panagiotis Kanavos   schedule 13.11.2015