我已经通过pip下载并安装了 Pyinstaller ,目标是创建一个可以在Windows上独立使用的.exe二进制文件。 My app/script与this one大致类似,从某个subreddit下载图片(可以在没有reddit帐户的情况下访问)。
通过控制台或我的IDE运行.py脚本按预期工作,无论是在 Linux 还是 Windows 上。根据{{3}},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
或双击在相同的Win8.1 x64机器上进行了尝试,安装了所有必需的库(包括PRAW),Python 2.7 32位(用于目标.exe的兼容性)和用户 praw。 / appData / dir中缺少ini配置,而C:\Python27\Lib\site-packages\praw\praw.ini
Pyinstaller文档提到了使用 .spec文件将外部文件包含在包装的.exe中但是我不知道这个角色是如何起作用的,因为我已经缺少/不要#39 ; t需要praw.ini配置。 Py2exe也会产生相同的结果。如何解决此问题并生成一种使用此工具的简单方法?
答案 0 :(得分:0)
基于输出的最后一行
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']
从打包的.exe运行时,PRAW似乎正在3个不同的位置寻找配置文件'praw.ini'
.
,在同一路径中运行.exe 现在,让我们看看我们可以做些什么来获得至少一个这些案例的资格。
尽管它实际上是解决方法,但最后一个选项将为该工具提供足够的简单性,使其能够为普通用户提供开箱即用的功能。