Python 打包可执行文件

在 Python中,我们可以使用各种工具来将 Python 代码打包成可执行文件,以便在没有 Python 解释器的环境中运行。接下来,我们将了解下如何在 Windows 和 Mac 系统上实现打包可执行程序:

  1. pyinstaller
  2. py2app

注意:pyinstaller 可以用于 linux、mac 平台程序打包,但是由于各种原因在我的 Macos big sur 11.6.8 上打包出来的程序命令行可执行程序执行没问题,但是 app 文件双击会出现闪退。所以,对于 Mac 系统我们使用 py2app 实现打包。

1. Windows 打包

首先:切换到项目环境中,并使用下面命令安装工具:

pip install pyinstaller==5.13.2 -i https://pypi.tuna.tsinghua.edu.cn/simple

切换到项目目录下,制作可以双击运行的程序,这里有两种方式:

  1. 打包成单一文件:包含可执行程序、资源;
  2. 打包成多个文件:打包的结果包含可执行程序以及相关的动态库文件、资源。

1.1 打包成单一文件

# --noconsole 表示生成的可执行程序打开运行时,不显示命令行窗口
# --onefile 表示打包成一个可执行文件
pyinstaller --noconsole --onefile --name xxx main.py

打包过程结束之后,在项目目录下会出现 build 和 dist 两个目录,build 目录是打包过程中产生的临时文件(对我们无用),而在 dist 目录下则包含了生成的 exe 可执行程序。由于该程序运行过程中,需要用到 source 目录下的一些资源。

使用这种方式需要将程序所需要的资源文件拷贝到 dist 目录中,保证资源文件和 exe 文件在同一级目录。

1.2 打包成多个文件

# 去掉 --onefile 参数,增加 --add-data 参数
pyinstaller --noconsole --name plane  --add-data source;source main.py

这种方式并不会将程序打包成一个 exe 文件,而是包含了 dll、exe、资源等文件组合而成的可执行程序,如下所示:

这种方式是可以支持 –add-data 参数,即打包时能够自动拷贝资源文件。

2. Mac 打包

首先:切换到项目环境中,并使用下面的命令安装 py2app:

pip install py2app==0.28.6

然后:在项目根目录编写 setup.py 文件,内容如下:

from setuptools import setup

setup(
	# app : 入口文件
    app=['main.py'],
    # data_files : 资源目录
    data_files=['source']
)

最后,执行下面的命令,将会在项目目录下生成 dist 文件夹,双击 *.app 程序可直接运行:

python setup.py py2app

未经允许不得转载:一亩三分地 » Python 打包可执行文件
评论 (0)

1 + 4 =