我已经通过 pip 下载并安装了Pyinstaller,目的是制作一个可以在 Windows 上独立使用的 .exe 二进制文件。我的应用程序/脚本与这个最相似,从某个 subreddit 下载图像(无需 reddit 帐户即可访问)。
通过控制台或通过我的 IDE 运行 .py 脚本可以在Linux和Windows上按预期工作。根据PRAW 文档,PRAW 安装后必须有一个C:\Users\myName\AppData\praw.ini
配置文件,但我的系统目前缺少它,但是,正如我所提到的,脚本在 python 解释器上运行得很好。
使用 Pyinstaller 将其打包成 .exe 工作正常,但运行它(有或没有管理员权限)失败并出现以下错误
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
在控制台中运行myscript.exe
执行通过控制台或双击 生成的pyinstaller
在同一台 Win8.1 x64 机器上进行了尝试,安装了所有必需的库(包括 PRAW),Python 2.7 32 位(为了与目标 .exe 兼容)和/AppData/ 目录中缺少用户praw.ini 配置,而全局praw.ini 正确地在C:\Python27\Lib\site-packages\praw\praw.ini
Pyinstaller 文档提到了使用.spec 文件将外部文件包含在包装的 .exe 中,但我看不出这有什么作用,因为我已经缺少/不需要 praw.ini 配置。Py2exe 也产生相同的结果。我怎样才能解决这个问题并产生一个简单的方法来使用这个工具?