程序打包
为什么要打包
python程序如果在没有安装python的机器上不能运行,所以将脚本打包成exe文件,降低脚本对环境的依赖性,同时运行更加迅速。
第一步:安装Pyinstaller模块
- 打开CMD命令窗口
- 输入安装命令
pip install Pyinstaller
- 安装中常见错误
解决办法:
上述错误主要是由于缺少依赖模块造成的,使用pip install 命令安装pywin32模块和wheel模块后,再安装Pyinstaller
- pip install pywin32
- pip install wheel
普通py程序打包
1.打开cmd命令窗口,切换到.py文件所在路径
----切换磁盘:
命令:盘符:
比如切换到D盘:
D:
----切换路径:
命令:cd 路径
比如切换到 D:\Download :
cd D:\Download
2.输入pyinstaller -F 文件名.py 即可进行打包。
图示位置即为打包好的exe文件存放的位置。
pyqt5程序打包
对于普通的python程序,打包命令为:
pyinstaller -F 文件名.py
窗口程序相比于普通python程序有什么不一样呢?
- 会引用第三方模块,窗口程序中都引用了pyqt5等第三方模块。所以我们在打包时要注明第三方模块的路径。
- 指定是窗口程序
如下:
pyinstaller --paths PyQt5模块路径 -F -w --icon=窗口文件图标 文件名.py
参数说明:
- –paths:指定第三方模块的安装路径。
- -w:表示打包的文件为窗口文件,不显示cmd窗口。
- –icon : 可选项,如果设置窗口图标,指定图标的路径。
- 文件名.py:窗口程序的入口程序
pyinstaller -F xxxx.py
-F表示将程序打包为单个exe文件,文件会比较大pyinstaller -D xxxx.py
-D表示产生一个目录,将程序依赖的资源放进去,这样子打包exe文件会比较小
example:
pyinstaller --paths D:\pythonanzhuang\Lib\site-packages\PyQt5\Qt\bin -D -w --icon="D:\icon\demo\贝宝.ico" csdn_article.py
需要注意的问题:
可能大家会想,pyinstaller打包的时候选定一个文件进行打包,可是要我们创建的完整的程序是由多个文件组成的,我们是不是要打包多个呢?其实不是这样的,pyinstaller已经把我们完成这个程序需要的文件都囊括进去了。前提是我们在此之前所有的.py文件在同一目录下,并且资源文件在.py文件指定的位置。
可能遇到的问题
在使用pyinstaller打包时,可能会出现以下几点问题:
1.Cannot find existing PyQt5 plugin directories:
2.error: invalid command 'bdist_wheel
解决办法
pip install wheel
打包后的程序:exe文件及原代码
参考书目:Python GUI设计(PyQt5从入门到实战)—明日科技