python编译成exe太大,python生成的exe太大

  python编译成exe太大,python生成的exe太大

  写完一个小工具,想打包成exe文件方便使用,当然也不难。因为除了写Python的人,大部分人的电脑里都没有Python编译器,所以把它打包成exe,让别人(windows)双击打开,是一项必备技能。

  用Pyinstaller直接打开cmd:

  py-fw c:\ users \ 30797 \ desktop \ python \ main . py-f打包成一个文件。

  -w是无调试窗口。

  打包完了,看文件,147M!难怪打包要花这么长时间。

  查找问题,在网上查了一下资料,发现很多不必要的模块在我打包的时候就打包了。我不得不用纯蟒蛇皮包装它们。

  那么如何用纯Python打包呢?您可以使用pipenv模块。

  解决方案打开cmd:

  # Install pipenv,这里默认使用python3。

  Pip安装pipenv #创建新的虚拟环境

  Pipenv install #到虚拟环境中

  Pipenv shell #安装模块

  pip py项目#打包模块中使用的模块也应该安装。

  Pip安装pyinstaller #开始打包。

  py-fw c:\ users \ 30797 \ desktop \ python \ main . py打包。看尺寸,6M!成功!

  Pipenv - rm #该命令可用于删除原始虚拟环境。例如,当模块过多时,可以删除并重建虚拟环境。

  当我在构建新的虚拟环境并运行pipenv install时遇到了一个错误,AttributeError: version。不仅是这个命令,所有与pipenv相关的命令都会出现这个错误。

  后来查阅资料,发现系统中有多个版本的python。我系统中的python2干扰了python3中pipenv的正确运行。解决方案如下:

  1.在python3安装目录下找到并修改_registry.py文件。

  路径:E:\Python38 \ lib \ site-packages \ pipenv \ vendor \ Python finder \ _ vendor \ pep 514 tools \ _ registry . py2,将所有软件\Python in _REG_KEY_INFO字典修改为E:\ Python 38,然后保存。再次运行pipenv install,发现没有报告错误。

  关键是pyinstaller要安装在虚拟环境中。

  如果你在虚拟环境中没有安装pyinstaller,也可以使用pyinstaller命令,但是调用的是你系统原来的python编译器,其中包含了很多关联库,导致即使在虚拟环境中,你打包的exe文件仍然很大。

  还有一点需要注意的是:在虚拟环境中安装你的py文件中调用的库,否则打包时无法正常工作。

  参考https://www.cnblogs.com/chenbocheng/p/10839322.html

  https://github.com/pypa/pipenv/issues/2983

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: