首页 > 编程知识 正文

pyinstaller打包(pyinstaller打包依赖库)

时间:2023-05-06 05:34:10 阅读:71198 作者:4688

打包并分发PyQt5程序,并创建安装文件。 以自己的密码管理器为例~

使用的工具:平台:使用窗口S10 python3.7.6(安装所需软件包) pyinstallerupx选项压缩可执行文件) Inno Setup 6软件包可执行文件

打包pip install pyinstaller时,请切换到主脚本所在的目录。 否则,将出现导入路径问题。 例如,我的是D:PasswordManager,它是主程序所在的文件main.py。 启动pyinstaller

#多个文件pyinstaller -D main.py#个可执行文件pyinstaller -F main.py是打包在当前目录下的dist文件夹中的可执行程序。 此时,控制台将在运行时显示,如果出现错误,将打印在控制台上,可用于测试; 如果测试没有问题,请删除控制台窗口。 使用-w命令。

使用-i命令将图标添加到pyinstaller -D -w main.py可执行文件中。

py installer-d-w-ii con.icomain.py最后得到的dist文件夹如下,大小为90.5MB,对于功能简单的小程序来说还很大

压缩可执行文件(可选,不需要跳过)使用upx压缩可执行文件。 注意:在刚才打包pyinstaller时,输出日志中有UPX is not available,表示未安装upx。 请参阅安装upx。

安装后重新打包,dist文件夹大小为39.1 MB。 此时,尝试启动程序时发生错误:

参考、误报中,Qt platform pluginscouldbeinitialized与Qtplatformplugin有关,位于distPasswordManagerPyQt5Qt目录下

解决方法:

首先关闭upx。 也就是说,在pyinstaller之后添加参数noupx。 再次运行包以复制distpassword managerpyqt5 Qtplugins目录。 如果重新打开upx,重新打包并运行,然后用未压缩的plugins目录替换压缩版,则测试后将正常工作。

如果遇到这种麻烦,也可以直接关闭upx,然后使用upx手动压缩

upx *.dllupx *.exe继续减少文件体积进行观察,发现软件包目录下有很多我没有使用的Qt库

例如,即使要删除Qt5DBus、Qt5Qml、opengl的库等这些库,程序也正常动作

上面的两个文件夹似乎只有输出信息,但删除不会影响程序的执行。 此外,distpassword managerpyqt5 Qttranslations文件夹中的. qm文件用于多语言版本的软件更改语言,可以根据需要保留。 (我都删除了。 此时,dist文件夹的大小为26.4MB,仅是最初的1/3; 如果不使用upx的话,应该是60MB左右。 (如果取得C Qt,应该可以压缩到10MB以下,但是如果取得pyqt,图就会变快。

创建安装程序以下载、安装和汉化inno setup。 (这是可选的。 汉化是汉化用户安装向导的界面。 ),然后选择新脚本并按照向导填写。 最后生成脚本,点击编译即可得到安装文件。 请注意,“AppId”行位于生成的脚本中。 这个需要记下来

如果在后续版本的软件中填写此AppId,则安装文件在安装过程中将默认复盖早期版本。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。