Python打包exe程序(pyinstaller)以及打包文件太大的解决方法

127 篇文章 1 订阅
116 篇文章 1 订阅

编写的python项目,如何在没有python环境的电脑中运行?

打包成exe可执行程序即可

本文章可以教会你如何将python项目打包成exe可执行程序,以及打包后文件太大该如何解决!

来了来了,开始操作

首先,你需要安装一个库

这个库叫啥呢,就叫“pyinstaller”,项目都能写出来,怎么安装库应该不需要我多说了吧?

pip install pyinstaller

想到可能会有新手,新手请看???

老手请自觉跳过

安装好库了,那么打包命令是啥呢?

???

pyinstaller -i 123.ico -F -w main.py
  • 尽量把打包后的文件放在英文目录下。
  • 多个.py****文件打包为单一文件时,即pyinstaller 命令中加入了-F,也是有可能会导致错误的。可以不使用-F。

解释一下常用到的参数:

main.py:是你的python项目文件

-i:为main.exe文件指定的图标(如果没有,则不需要该参数)

123.ico :生成.exe文件的图标推荐一个在线转换ico图标的网址

-F:生成结果是一个exe文件,所有的第三方依赖、资源和代码均被打包进该exe内

-w :不显示命令行窗口(如不用此参数,打包后的程序在运行时会弹出一个命令行窗口,我个人一般是不喜欢它弹出这个命令行窗口的,除非打包后出现问题,后面会讲到)

来个表格:

参数名

描述

说明

-i

为main.exe指定图标

pyinstaller -i 123.ico main.py

-w

不显示命令行窗口

编写GUI程序时使用此参数有用。

-c

显示命令行窗口

与-w相反,默认含有此参数

-F

生成one-file的程序

生成结果是一个exe文件,所有的第三方依赖、资源和代码均被打包进该exe内

-y

如果dist文件夹内已经存在生成文件,则不询问用户,直接覆盖

默认:询问是否覆盖

-p

指定额外的import路径,类似于使用PYTHONPATH

参见PYTHONPATH

上面表格中的参数中,前三个为WindowsMac特有的参数,后三个为与生成结果有关的参数 and 通用参数

打包后,exe程序在当前目录下的dist文件夹中,自行去找哈

接下来说一说刚刚提到的命令行窗口,如果你使用了上面的命令打包后发现,程序打不开???

别慌,看这??

(文字有点点多,慢慢看,如果没有遇到这个问题可以先跳过这部分,以后遇到了再回来看)

首先你需要更改一下命令重新进行打包,怎么更改呢?前面我提到过一个命令行窗口,把打包命令中的-w删掉,再运行命令打包,打包好之后,就需要考验你的反应能力了,此话怎样呢,因为弹出来的命令行窗口只会停留一会儿。这时候,你可以准备截图(微信,qq,电脑自带等很多方式可以截图),在弹出命令行窗口运行出错误后进行截图。然后就是找问题所在了。

emmm,,,比如说这个??

有句话ImportError:OpenCV loader:missing configuration file:[‘config.py’]. Check OpenCV installation.啥意思呢,简单来说,缺少了相对应的库,这里是OpenCV库。

这时候需要在打包时指定 -p 参数,后面跟上 python 目录下的第三方库模板目录路径 site-packages ,再打包就成功了。

pyinstaller -i 123.ico -F -w main.py -p C:/python/lib/site-packages

解决后如果没有问题那就恭喜你,打包完成!

然而你会发现,有些项目在打包exe程序后的文件大小会非常大,比如说这个:

这种情况,请往下看

先看看效果怎样:

可以看到,打包前和打包后的大小差距有多大。

我用的方法:使用pipenv缩小exe

废话不多说,直接看操作步骤:

1、安装pipenv

与安装其他python库一样,在cmd环境下安装:

pip install pipenv

2、安装完成后,随便找一个盘符,在这个盘符的根目录(最好是根目录)新建一个文件夹,作为虚拟环境,然后双击进入该文件夹

3、在虚拟环境下安装python,例如:

pipenv install -python 3.6

在这里就有可能遇到第一个坑了,系统有可能提示无法转换为 “utf-8”,具体原因是因为中文转码的问题,但是不必深究。这时候最好的方法是重启电脑,对是的,重启电脑,然后不要打开任何其他程序,重复上述第2步

4、在命令行下激活虚拟环境

pipenv shell

在这里,可能又会遇到刚刚第3步中的问题,系统提示无法转换为“utf-8”,没有办法,再次重启电脑吧,然后重新进入power shell,再尝试运行 pipenv shell

5、安装需要的库(仅需安装需要打包的.py文件中所用到的库)

根据要打包的程序中导入的库,在pipenv环境下重新安装,例如:

pipenv install pyinstaller
pipenv install removebg

6、把py脚本文件复制到这个新建的目录下,重新运行 pyinstaller,方法、参数等同以往一样就OK

dddd(懂的都懂),好了,问题解决。

如果这篇文章对你有帮助,关注点赞收藏呗???

  • 10
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

java_进阶路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值