Pyinstaller的'onedir'模式生成的文件太多

10 投票
3 回答
11538 浏览
提问于 2025-04-18 02:27

我正在用PyInstaller 2.1把我的Python应用程序打包成Windows可执行文件。一开始我尝试使用onefile模式,但发现这种模式启动时很慢(因为需要解压wxmatplotlib)。而用onedir模式启动就快多了(只比原生Python慢一点点)。

所以我想用onedir模式来加快启动速度,但对于普通用户来说,在主目录里找到实际的*.exe文件有点困难(主目录里有98个文件,包括可执行文件和它的清单文件)。

我希望能让不懂技术的用户轻松“双击”可执行文件就能使用这个程序(简单易用和便携),而不是让他们看到其他97个文件还要长篇大论地告诉他们“只需忽略”那些文件。

有没有办法把这些“干扰”的文件移动到一个子文件夹里?或者有没有其他方法可以让最终用户更容易地运行这个程序?

3 个回答

0

你可以使用一些软件把它打包成一个单文件的安装程序,比如说 Inno setup。你也可以尝试一个一个地删除一些文件(如果程序运行出错了,就把它恢复回来)。我发现几乎一半的文件都可以删除,而程序依然能正常运行。

你可以从 这里 下载 Inno Setup

1

--onedir模式下,减少创建文件数量最简单的方法就是先创建一个虚拟环境,然后只安装必要的模块。

1

你可以试试使用onedir。生成的文件夹可以放在任何地方,然后你可以为用户创建一个快捷方式,这样他们就能更方便地访问了。

撰写回答