首先,安装Pyinstaller,进入PYTHON目录下Scripts安装,安装Pyinstaller,输入命令:pip install Pyinstaller
一、单*.py文件封装
cmd进入python程序项目目录,执行命令:pyinstaller -F -w –icon=xxx.ico main.py –noconsole
其中,-F表示生成单exe可执行文件,-w表示窗体程序,
–icon是设置exe的显示图标,’main.py’是程序的入口,–noconsole 表示不展示cmd窗口,反过来想看cmd窗口就改成–console。*.ico文件可以到网上ico矢量图在线转换工具处理。
一阵刷屏之后,终于打出成功的提示:
程序目录下多了几个文件夹:一个spec文件,build文件夹,一个dist文件夹,其中的dist文件夹内就是我们生成的exe应用程序:
FATAL ERROR:
执行之,应该能看到程序界面,可是……弹出的却是个错误框:Failed to execute script pyi_rth_qt5plugins
这个错误的原因在于pyinstaller找不到PyQt库,通过网上封装好的pyqt安装程序包安装的,则不会出现这个问题,而我们是通过pip安装的。
没有将pyqt的路径加入环境变量。
解决办法是在打包命令中加入paths参数:pyinstaller –paths C:Users……Python35-32/Lib/site-packages/PyQt5/Qt/bin -F -w –icon=roman.ico main.py
或者设置下环境变量。这时,再看下生成的exe,文件大小已经由8.5M增大到14.5M了,再次执行之,ok,看到了我们的界面,而且功能也是ok的。
二、多文件封装
命令格式如下,下命令为一条命令,为方便显示做了分行处理:
pyinstaller [主文件] -p [其他文件1] -p [其他文件2]
–hidden-import [自建模块1]
–hidden-import [自建模块2]
# 以上为一整条命令
pyinstaller main.py -p mysql.py -p other.py –hidden-import mysql –hidden-import other
在目录结构:“程序根目录\dist\main\” 下可以找到生成的main.exe。将其他依赖文件拷贝进入“程序根目录\dist\main\” 下,即可运行。
项目XXX举例,main和ico文件要放一起 -p 文件夹,因为项目下我创建了case、autodriver、data、page文件夹,文件夹里面放的*.py文件通过–hiddent-import指向,代码如下:
pyinstaller -F -i t.ico -w main.py -p case -p autodriver -p data -p page -p page –hidden-import workday.py –hidden-import auto_driver.py –hidden-import login.csv –hidden-import base_page.py –hiddent-import sub_page.py
注意:–hiddent-import是连在一起的,dist文件夹里面要把需要的问卷copy进来,然后整个dist文件夹就可以任意移动到其他位置,到时候运行*.exe文件就可以执行程序了
三、python利用pyinstaller打包的exe文件不带命令行窗口
python利用pyinstaller打包的exe执行后,总是有个命令窗口小黑框,所以这个命令窗口是没有必要存在
首先执行pyinstaller的时候需要带参数-w
-w指令
直接发布的exe应用带命令行调试窗口,在指令内加入-w命令可以屏蔽
pyinstaller -w -F hello.py
注:如果有已经生成的.spec文件,可以直接使用pyinstaller name.spec生成可执行文件