现在我正在使用 Pyinstaller。 我有一个从 img 文件夹中获取图像的脚本..
/python
|----/img
|----|----icon1.ico
|----|----icon2.ico
|----maint.py
我生成.exe的脚本是
pyinstaller.py --windowed --noconsole --clean --onefile maint.py
问题是只生成了.exe文件,却忽略了整个文件夹/img。
问题:为了自动获取 .exe 文件 +/img 文件夹,我需要在上一行添加哪些附加语法?
我的意思是:在执行带有所有参数的 pyinstaller.py 脚本之后,我必须在/dist 文件夹中看到:.exe 文件 +/img 文件夹,其中包含我的应用程序的所有图标或位图文件
谢谢
最佳答案
我是这样解决问题的:
我正在使用当前版本的 PYInstaller + Python 2.67 和 Sublime Text 作为编辑器。
如果您的 Py 脚本需要一些文件、图标、图像,您必须包含一个从项目文件夹(在开发中)或形成临时数据文件夹(在部署的情况下)中检索这些文件的函数。该脚本必须在您的代码中恰好位于您放置亲属路径以获取资源的部分中。请严格按照this guideline .
在前面的代码之后,您必须第一次执行 pyinstaller 命令 - 正如我在我的问题中发布的那样 -。
现在,打开执行 PYInstaller(位于
PYinstaller/YourAppName/
)命令后生成的 .spec 文件,并在a.binaries
行之后添加,下一行进入EXE()
函数:exe = EXE(pyz, a.scripts, a.binaries, Tree('..\\python\\images', prefix='images\\'), ....
请记住,在
Tree(...)
函数中,第一个参数是要放在外面的文件夹:这意味着我想包含该文件夹的所有内容(请注意,我将 AppStart.py 文件的相对路径)放入我的 .EXE 文件的文件容器中。修改后重新执行 pyinstaller 命令,但在本例中指向我的
.SPEC
文件:pyinstaller.py --windowed --noconsole --clean --onefile AppStart\AppStart.spec
最后,我的应用程序可以作为可执行文件执行,而无需像有人提到的那样复制和粘贴所有外部文件夹。 但我一如既往地考虑实用的方法。
感谢您的支持。
关于python - Pyinstaller:生成-exe文件+文件夹(在--onefile模式下),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20602727/