python多文件打包成exe简单过程(利用pyinstaller)

想把一个项目打包成在不同电脑上可运行的程序。目标项目很复杂,涉及到多个.py文件和多个资源及依赖环境。

所以先拿简单的小项目来试一下,需要打包的文件目录如下:

只有两个.py文件和一个img文件夹。

 

一、安装pyinstaller

pip install pyinstaller

其他安装方法可以上网搜,如果pip下载速度太慢导致安装失败的话,可以换一换pip镜像。

常用的镜像地址如下:

清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/

这时,可使用下面的语句(清华):

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller

 

二、开始打包

1. 将项目放在一个(反正自己能找到)不包含中文的路径下,这里方便省事我直接放在了E盘下:

2. 打开cmd,进入项目文件夹内,这里我自己的文件夹路径是 E:\inpaint>

 

多文件打包命令格式如下,为一条命令,为方便显示做分行处理:

pyinstaller [主文件] -p [其他文件1] -p [其他文件2]
--hidden-import [库包名1]
--hidden-import [库包名2]
# 以上为一整条命令

 

在这里的话,pyinstaller -F [主文件]...  是只生成一个exe文件。

不加-F的话,生成一个文件夹,如下图。

我自己的项目输入是:

pyinstaller Frame.py -p AutoTest.py --hidden-import sys --hidden-import PyQt5 --hidden-import cv2 --hidden-import numpy

 

打开项目所在的文件夹,这时发现生成了一个dist文件夹和一个.spec文件

 

进入dist文件夹,里面有一个Frame(我自己的项目是这个名字哈)

 

点击Frame.exe运行。

哦嚯,闪退了。。。闪退过程中仿佛有几行报错飘过。但它退太快,看不清。

 

三、解决exe运行闪退

用 EV录屏 软件录了闪退的视频,定格到报错的那一帧看,发现了

No module named 'pkg_resources.py2_warn'

查了资料后,是由于新版本的setuptools引起的,只需将setuptools降级到44.0.0及以下,再重新打包就可以了。

 

cmd中输入:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple setuptools==44.0.0

 

重新打包,见步骤二。

这下子没问题辽!Frame.exe可以运行!

不过运行时一直有个小黑窗。

好吧,删了重来,

将打包的语句加入-w(取消窗口),如下在pyinstall后添加-w

pyinstaller -w Frame.py -p AutoTest.py --hidden-import sys --hidden-import PyQt5 --hidden-import cv2 --hidden-import numpy

 

四、成功!

运行新打包的Frame.exe,

成功!

然后,可以直接把dist下的文件夹Frame拷到其他电脑上运行啦!

 

 

参考链接:

Pycharm打包运行程序时出现ModuleNotFoundError: No module named 'pkg_resources.py2_warn'

Pyinstaller打包exe文件 取消dos窗口

pyinstaller多文件打包

  • 18
    点赞
  • 82
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值