Pyinstaller:生成-exe文件+文件夹(在--onefile模式下)

2024-04-16 13:43:25 发布

您现在位置:Python中文网/ 问答频道 /正文

现在我正在使用Pyinstaller。 我有一个从img文件夹中获取图像的脚本。。

/python
|----/img
|----|----icon1.ico
|----|----icon2.ico
|----maint.py

我要生成.exe的脚本是

pyinstaller.py --windowed --noconsole --clean --onefile maint.py

问题是只生成.exe文件,而忽略整个文件夹/img。

问题:为了自动获取.exe file+/img文件夹,我需要在前一行中放入哪些常规语法?

2013年12月18日更新

我的意思是:在使用所有参数执行pyinstaller.py脚本之后,我必须在/dist文件夹中看到.exe文件+包含应用程序所有图标或位图文件的/img文件夹

谢谢


Tags: 文件py图像脚本文件夹imgexeico
1条回答
网友
1楼 · 发布于 2024-04-16 13:43:25

2013年12月19日更新

终于,我们找到了!

0个。我正在使用当前版本的PYInstaller+Python 2.67,其中Sublime Text是编辑器。

一。如果Py脚本需要一些文件、图标、图像,则必须包含一个函数,该函数从项目文件夹(开发中)检索这些文件,或形成临时数据文件夹(部署时)。这个脚本必须在您的代码中,正好在您放置亲属路径的部分,以便获取资源。请严格遵循以下准则:https://stackoverflow.com/a/13790741

2。在前面的代码之后,您必须第一次执行pyinstaller命令-正如我在问题post中发布的那样-。

三。现在,打开执行PYInstaller(位于PYInstaller/中)命令后生成的.spec文件,在“a.binaries”行之后,将下一行添加到EXE()函数中:

exe = EXE(pyz,
          a.scripts,
          a.binaries,
          Tree('..\\python\\images', prefix='images\\'),
....

请记住,在树(…)函数中,第一个参数是要放在外部的文件夹:这意味着我希望将此文件夹的所有内容都包含在中(请注意,我正在将与AppStart.py文件相关的路径放置在我的.EXE文件的文件容器中。

四。修改之后,重新执行pyinstaller命令,但在本例中指向my.SPEC文件:

pyinstaller.py --windowed --noconsole --clean --onefile AppStart\AppStart.spec

最后,我的应用程序可以作为可执行文件执行,而不需要像某人提到的那样复制和粘贴所有外部文件夹。但我一如既往地认为这是一种很好的实用方法。

谢谢你的支持。

相关问题 更多 >