python打包exe无法运行,python打包成不依赖包的exe

  python打包exe无法运行,python打包成不依赖包的exe

  前言在编写代码的过程中,我们开发的脚本通常会用到一些第三方的包。也许其他人也需要使用我们的脚本。如果我们把我们的xx.py文件发给他,他不能直接使用。他还需要安装python解释器,甚至我们用的那些第三方包。是不是有点麻烦?但是我们都知道PC可以直接运行exe文件,这给我们提供了一个便捷的途径。所以,看完这个教程,一切都将成为过去。打成exe之后,分享之后就可以用了。

  PS:如果是打包成exe,尽量选择python3.6 32位版本,因为向后兼容win64位系统的32位程序,不过不考虑32位系统也没关系。直接打包python64位版本就行了,但是只能在win64位系统上运行。

  让我们正式从如何开始打包python代码开始(我用的是Anaconda 3的64位pycharm)

  安装pyinstaler

  首先安装pyinstaller,使用安装命令:pip3 install pyinstaller,如下图所示。

  Pyinstaler打包机制我们写的python脚本不能脱离python解释器独立运行,所以在打包的时候,至少会把python解释器和脚本打包在一起。同样,为了让打包的exe正常运行,我们安装的所有第三方包都会打包成exe。

  即使我们的项目只用了一个requests包,我们可能装了n个其他的包,但是他不在乎,因为包和包之间只有依赖关系。比如我们只安装了一个requests包,但是requests包会附带安装一些其他的依赖包,所以为了安全起见我们只能把所有的第三方包python解释器打包在一起。如下图所示。

  蓝色表示安装了请求的软件包。

  Pyinstaler包exe

  1. 让我们包装我们自己写的。py文件转换为exe文件。我们直接cmd到这个脚本的目录下,执行命令:pyinstaller -F setup.py,如下图所示:

  【ps:可以直接在包含目录的地址栏输入cmd。py文件打开dos窗口,输入pyinstaller -F setup.py注意-F两边都有空格,setup.py是我的文件名,可以用自己的替换。]

  Ps: -F参数表示覆盖打包,这样打包的时候,不管我们打包多少次,都是最新的。请记住这一点,并修复命令。

  2. 执行后,会生成几个文件夹,如下图所示。

  3.在dist文件夹下,有一个exe程序。这是可执行的exe程序,如下图所示。

  双击这个。要运行的exe文件。

  解决python打包生成的exe文件在运行时提示模块缺失的问题。

  事情经过:当时我用py installer-F D:\ python project \ OpenCV _ _ 3 \ 02 _ _ a . py打包了一个exe程序,但是运行时提示我缺少cv2模块。然后我去查了pyinstaller的用法,发现PyInstaller有一个-p参数,可以指定多个打包路径。因此,可以使用-p参数同时指定工程文件。

  注:查看包所在目录方法:使用win R键打开运行栏,输入cmd,在dos窗口输入pip list,显示安装了多少个包:

  用pip安装包后,只需再次执行命令pip install xx,安装路径就会显示出来。例如,在安装了pip install jupyter之后,再次输入pip install jupyter将显示该软件包的安装路径。

  可以看出:

  Jupyter安装在C:\ users \ Xin \ appdata \ local \ programs \ python \ python 35 \ lib \ site-packages下,记住这个路径。

  打包时输入py installer-F-p xx;yy.py

  【xx是刚才包的路径,yy.py是要打包的项目文件】

  那么包装就成功了。双击打开它,发现它可以运行了。(*^^*)

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

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