使用 Pyinstaller 将 Python 程序打包成 exe 可执行文件

2019/6/2
解决方案
Python

本教程是使用 Pyinstaller 来将 Python 程序打包成 exe 可执行文件

# 实现步骤

首先要安装 Pyinstaller 包,在命令行窗口使用 pip 指令就可以完成:

pip install pyinstaller

安装成功后就可以进行打包了

在命令行进入要打包的 python 程序的目录下面

接着使用pyinstaller file.py就进行打包了 (file.py 是指你要打包的 python 文件)

这个指令也可以附带其他属性:

-F  表示生成单个可执行文件
-D  创建一个目录, 包含exe文件和依赖很多文件(默认选项)
-w  表示去掉控制台窗口, 这样执行exe文件的时候不会出现窗口, 但会在后台运行, 用命令行还是可以看见执行情况的
-c  使用控制台, 无界面(默认);
-p  表示你自己自定义需要加载的类路径
-i  表示可执行文件的图标。

例如我要生成一个带图标的 exe 文件,没有其他依赖文件的,那么就是使用指令:pyinstaller -F -i image.ico file.py

  • image.ico 表示图标的路径
  • file.py 表示要打包的 python 文件

打包后会生成 dict 文件夹和 buid 文件夹还有一个。spec 文件,其中 dict 就是放置我们要的 exe 文件的文件夹,其他两个是生成 exe 文件的过程中的中间产物,可以删掉。

pyinstaller 打包的时候会自动把其他依赖的包和其他 python 文件引入,所以不用担心调用的问题。

但是其他要使用到的文件并不会被添加进去,例如要使用的图片或者文档,所以要自己把文件添加到打包完的 exe 文件的目录下面相应的路径,否则会出现闪退或者文件执行失败。

另外就是,如果 py 文件的编码是 utf8, 但是文件里面又有中文的话,那么使用 windows 的命令行打包会出现编码错误。

解决的方法就是先使用 chcp 指令进入其他编码的命令行

以下是几种常用的编码:

GBK(一般情况下为默认编码) 936
美国英语 437
utf-8 65001

在这里我们要使用 utf-8 的编码,所以使用命令:chcp 65001

设置编码后再进行打包就不会出现编码错误的情况了

最后就是,第一次打包出来的程序经常会出现各种问题,建议在命令行执行 exe 文件,这样可以看到报错的内容,以便结合情况解决问题。

Post Order
By Time : DESC
Article Statistics
Article: 35
Categories: 4
Tags: 18