环境:win10 64 位 python3.7
单.py 文件打包*
Python GUI:程序打包为 exe
一、安装 Pyinstaller,命令 pip install Pyinstaller,(大写的 P,敲黑板,要考)
二、打包 exe 步骤:
cmd 进入 py 程序项目目录,执行命令:pyinstaller -F -w --icon=xxx.ico main.py --noconsole。其中,-F 表示生成单 exe 可执行文件,-w 表示窗体程序,
--icon 是设置 exe 的显示图标,'main.py'是程序的入口,--noconsole 表示不展示 cmd 窗口,反过来想看 cmd 窗口就改成--console。*.ico 文件可以到网上 ico 矢量图在线转换工具处理
http://www.faviconico.org/
一阵刷屏之后,终于打出成功的提示:
程序目录下多了几个文件夹:一个 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 的,
多文件打包:
多文件打包参考:https://blog.csdn.net/CholenMine/article/details/80964272
命令格式如下,下命令为一条命令,为方便显示做了分行处理:
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 文件就可以执行程序了
逆风的方向更适合飞翔,不怕千万人阻挡,只怕自己投降!
文章二
最近写了一个小小的程序,需要进行封装 exe,为了简单,就直接用了 pyinstaller 这个模块,对于 python3.6 版本的童鞋来说,简直方便的不要。下面就给大家介绍一下如何用 pyinstaller 去封装程序为 exe 程序。
首先,需要安装一下 pip 这个应用,这个已经在前面的文章中说过了,windows 和 linux 都有请借鉴 windows 和 linux。
第二步,安装好 pip 之后,在 cmd 命令窗口中输入 pip install pyinstaller 即能安装上 pyinstaller,那么接下来要介绍一下关于 pyinstaller 几个指令了:
-w 指令
直接发布的 exe 应用带命令行调试窗口,在指令内加入-w 命令可以屏蔽;
-F 指令
注意指令区分大小写。这里是大写。使用-F 指令可以把应用打包成一个独立的 exe 文件,否则是一个带各种 dll 和依赖文件的文件夹;
-p 指令
这个指令后面可以增加 pyinstaller 搜索模块的路径。因为应用打包涉及的模块很多。这里可以自己添加路径。不过经过笔者测试,site-packages 目录下都是可以被识别的,不需要再手动添加。
那么通常是使用-F 指令,使用的语法是:pyinstaller -F (python 程序名称).py
以“helloword”为例
在一个新建的文件夹下把 python 程序放进去,然后点击空白处,按住 shift+ 鼠标右击,点击“在此处打开命令行窗口”,在 cmd 命令中输入“pyinstaller -F hello.py”
在回车之后,则会出现以下画面
以上证明已经封装好 exe 程序了,在新建的文件夹中,会出现以下的文件
封装好的 exe 程序就在 dist 文件夹中,如图所示:
倘若你的 windows 是正版的话就会出现“hello world”的字样,如果不是正版的将会出现没有 dll 文件支持,那么就需要进行正版的系统安装了。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于