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

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

打包成exe可执行程序即可

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

来了来了,开始操作

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

首先,你需要安装一个库

这个库叫啥呢,就叫“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文件夹中,自行去找哈

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

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

别慌,看这

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

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

emmm,,,比如说这个

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

有句话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程序后的文件大小会非常大,比如说这个:

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

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

这种情况,请往下看

先看看效果怎样:

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

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

我用的方法:使用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

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

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

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

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

    原文作者:蜡笔小新星
    原文地址: https://blog.csdn.net/m0_54490473/article/details/122388254
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞