在 Window 下打包 PyQt5 的程序为 exe 问题

  1. 首先配置 python 的环境,这里不赘述,官网下载安装即可。

  2. 利用安装程序所需要的所有程序包。

3.安装 pyintaller 的模块(主要使用它进行打包),安装 以下组件:vcredist_x64
[https://download.microsoft.com/download/3/2/2/3224B87F-CFA0-4E70-BDA3-3DE650EFEBA5/vcredist_x64.exe]
WindowSDK
(https://download.microsoft.com/download/3/2/2/3224B87F-CFA0-4E70-BDA3-3DE650EFEBA5/vcredist_x64.exe)
https://download.microsoft.com/download/3/3/3/333ECB46-DD2E-42ED-962F-6255871EBC3A/iso_windowssdk/15063.400.170508-1839.rs2_release_svc_sec_WindowsSDK.iso
配置PATH环境变量:

C:\Program Files (x86)\Windows Kits\10\Redist\ucrt\DLLs\x64

4.配置pyqt的环境变量(或者在打包时指定pyqt的路径,用 -p 参数)
新建环境变量 PYTHONPATH:

C:\Users\colbert\AppData\Local\Programs\Python\Python35\

配置PyQt5的路径:

%PYTHONPATH%\lib\site-packages\PyQt5\Qt\bin\

4.在项目的主目录下,运行:

pyinstaller -F --clean MainWindow.py

-F 将程序打包成独立的执行文件
--clean 清理缓存

5.在控制台运行打包好的程序,如果成功显示界面则换成:

pyinstaller -F --clean -w MainWindow.py

-w 去掉控制台显示,不加这个可以使用控制台运行看错误信息,加上就看不到了。

如果出现错误,即可在控制台看到运行时所需要安装或需要引用的模块。
例如:我在打包时出现没有找到 _mssql 的错误:
这个错误不是由于没有安装引起的,但是就是没有引用到,而程序中并没有明确引用该模块,所以只要在主程序中 import __mssql 就可以,估计是pyinstaller也只会查找显示引用的包,所以需要啥我们就显示引用一下就行了,没有找到更好的解决办法。

相关问题:
https://github.com/pyinstaller/pyinstaller/issues/1840

你可能感兴趣的:(在 Window 下打包 PyQt5 的程序为 exe 问题)