我在一小时内提出两个问题感觉很糟糕,但是很好。
我正在使用Python和PySide构建一个相当复杂的应用程序。最后发布的那天即将到来,所以我想将这个应用程序构建为exe。我正在使用PyInstaller来构建我的exe二进制文件。
此应用程序的一部分加载一些JPEG图像。我在将这些图像加载到我的应用程序时遇到了问题(它们只是不会显示),所以我必须这样做:
path = os.getcwd()
app.addLibraryPath(path) #app being QApplication()
这使它工作(此路径包含imageformats
文件夹,其中包含qjpeg4.dll
和其他图像加载插件)
然而,现在我在使用PyInstaller打包它时遇到了同样的问题。我必须使用--onefile
标志,但即使我没有,我也可以看到PyInstaller没有包含imageformats
文件夹 - 无处可寻。
我知道这是问题,因为当我手动将imageformats文件夹复制/粘贴到exe所在的文件夹时,应用程序按预期工作。
有没有办法强制 PyInstaller包含我指定的文件夹,特别是这个imageformats文件夹?
答案 0 :(得分:0)
使用PyInstaller --additional-hooks-dir=HOOKSDIR
时会有一个选项,它会将其他目录附加到pyinstaller搜索路径。
答案 1 :(得分:0)
PyInstaller的选项--add-data <SRC;DEST or SRC:DEST>
pyinstaller --add-data "\path\of\imageformats;imageformats" target.py