Python打包成exe可执行文件

淩亂°似流年 2022-12-21 06:22 289阅读 0赞

Python打包成exe可执行文件

    • 安装pyinstaller
    • pyinstaller打包机制
    • Pyinstaller打包exe
    • 总结命令
    • 可能会碰到的一些常见问题

我们开发的脚本一般都会用到一些第三方包,可能别人也需要用到我们的脚本,如果我们将我们的 xx.py文件发给他,他是不能直接用的,他还需要安装 python解释器,甚至还要安装我们用的那些第三方包,是不是有点小麻烦?但是我们都知道, PC是可以直接运行 exe文件的,这就为我们提供了一个便捷的方式。
【注】 如果打包为 exe的话,版本尽量选择 python3.6+32位版本,因为 win64位系统向下兼容 32位程序,但是如果不考虑 32位系统的话无所谓,直接 python64位版本直接打包就可以,只是只能在 win64位系统上跑。

安装pyinstaller

首先安装pyinstaller,使用安装命令:pip3 install pyinstaller

pyinstaller打包机制

我们写的python脚本是不能脱离python解释器单独运行的,所以在打包的时候,至少会将python解释器和脚本一起打包,同样,为了打包的exe能正常运行,会把我们所有安装的第三方包一并打包到exe
即使我们的项目只使用的一个requests包,但是可能我们还安装了其他n个包,但是他不管,因为包和包只有依赖关系的。比如我们只装了一个requests包,但是requests包会顺带装了一些其他依赖的小包,所以为了安全,只能将所有第三方包+python解释器一起打包。

Pyinstaller打包exe

  • 我们来将这个.py的文件打包成一个exe,我们直接cmd切换到这个脚本的目录,执行命令:pyinstaller-F setup.py
    【注】-F参数表示覆盖打包,这样在打包时,不管我们打包几次,都是最新的,这个记住就行,固定命令。
  • 执行完毕之后,会生成几个文件夹.
  • dist里面呢,就有了一个exe程序,这个就是可执行的exe程序。

点击运行我们可以看到,后面有一个黑洞洞的窗口(控制台),这就有点尴尬了,所以,如果我们不需要这个的话,我们的打包命令也要变一下。

执行 pyinstaller -F -wsetup.py多加-w以后,就不会显示黑洞洞的控制台了

  1. pyinstaller -F -w xxx.py

但是我们打包的exe,我们的图标呀,实在是有点丑陋,默认的,没有一点自己的风格,那么,我们应该怎么改一下呢?
执行以下命令:

  1. pyinstaller -F -w-i xxx.ico xxx.py

【注】程序路径最好全部都是英文,否则可能会出现莫名其妙的问题

总结命令

  • Pyinstaller -F setup.py 打包exe
  • Pyinstaller -F -w setup.py 不带控制台的打包
  • Pyinstaller -F -i xx.ico setup.py 打包指定exe图标打包

平常我们只需要这三个就好了,足够满足所有需求了。
到这之后呢,python打包成exe基本算是结束了,记得一定要把pip升级成最新版pip在安装pyinstaller哈。要不然可能会出现莫名奇妙的问题。

可能会碰到的一些常见问题

  • Python打包成exe,文件太大问题
  • pyinstaller打包:AttributeError: module ‘win32ctypes.pywin32.win32api’ has no attribute ‘error’
  • pyinstaller设置图标出现“struct.error: unpack requires a buffer of 16 bytes”

发表评论

表情:
评论列表 (有 0 条评论,289人围观)

还没有评论,来说两句吧...

相关阅读