译自:Convert Python Code to EXE
作者:Almin Piric | Talking Code | 2021年4月18日
本文使用的Python版本为Windows 10上的Python 3.8.2版本。
目录
- 目录
- 为简单程序创建exe
- 步骤1 安装
cx_Freeze
- 步骤2 为简单程序创建exe
- 步骤1 安装
- 将较大的Python程序转换为exe文件
- 步骤1 也需要安装
cx_Freeze
- 步骤2 创建
setup.py
文件 - 步骤3 创建可执行文件
- 步骤1 也需要安装
- 为简单程序创建exe
这个指南将帮助您通过使用cx_Freeze
把您的Pyton代码转换成一个独立的可执行的文件。我将假设您已经准备好了一个程序进行转换工作了。
为简单程序创建exe
步骤1 安装cx_Freeze
您可以使用pip
来安装cx_Freeze
。
pip install cx_Freeze
返回目录
步骤2 为简单程序创建exe
创建exe文件所需的唯一其他步骤是在终端中执行下面行中的代码:
cxfreeze -c YOUR_PROGRAM.py -–target-dir dist -–target-name NAME_OF_EXE
这条代码将创建一个名为dist
的新文件夹,而所产生的exe(NAME_OF_EXE
)文件将在您选择的名称的文件中。一旦您的程序立即结束,您就可以使用CLI
运行它。当你的Python程序执行完每一行代码后,它就会自动关闭。只要您不进行清除,那么在CLI中,它将使输出保持可见。其中的dist
和NAME_OF_EXE
加不加引号都可以,NAME_OF_EXE
文件名后面加不加.exe
也都可以。
比如:一个简单的Python代码文件为test.py
,内容如下:
print("Hello, World!")
在于test.py
文件同路径下打开一个cmd
终端,输入如下的命令并回车:
>cxfreeze -c test.py --target-dir dist --target-name test.exe
会产生一个名为dist
的目录,进入这个dist
目录后,查看目录中的文件如下:
D:\************\dist>dir
驱动器 D 中的卷是 DATA
卷的序列号是 D871-80AE
D:\************\dist 的目录
2021-06-18 20:20 .
2021-06-18 20:20 ..
2021-06-18 20:20 lib
2020-02-25 23:30 58,952 python3.dll
2020-02-25 23:30 4,195,912 python38.dll
2021-06-18 19:30 12,800 test.exe
3 个文件 4,267,664 字节
3 个目录 186,790,764,544 可用字节
然后在dist
目录,直接输入test.exe
并回车执行,执行结果如下:
>test.exe
这个转换后的test.exe
文件就显示了如下我们需要的内容:
D:\************\dist>test.exe
Hello, World
对于小程序来说,使用这种方法创建一个exe文件完全可以正常工作。但是,如果您有一个较大的程序,尤其是使用了外部库的程序,那么您就需要花更多的时间来创建您的exe文件。
返回目录
将较大的Python程序转换为exe文件
步骤1 也需要安装cx_Freeze
您可以使用pip
来安装cx_Freeze
。
pip install cx_Freeze
返回目录
步骤2 创建setup.py
文件
在与您的程序所在路径相同的路径中创建一个新文件,并把它命名为setup.py
。打开setup.py
这个文件,并输入下面的代码:
首先,需要导入cx_Freeze
与sys
这两个模块:
import cx_Freeze, sys
现在我们需要确认一下我们的程序是运行在32位和64位系统上的:
base = None
if sys.platform == "win32":
base = "Win32GUI
然后,我们需要设置我们可执行的内容:
executables = [cx_Freeze.Executable("YOUR_PROGRAM.py", base=base, targetName="NAME_OF_EXE")]
现在让我们完成我们的setup.py
文件(在这个例子中我们假设您所创建的是包括两个图片的一个Tkinter项目,这两个图片分别为someImage
和anotherImage
。您的程序中所使用这两个图片都需要保存在与您的程序相同的目录下。):
cx_Freeze.setup(
name = "NAME_OF_EXE",
options = {"build_exe": {"pakages": ["tkinter"], "include_files": ["someImage.png", "anotherImage.png",]}},
version = 1.0,
description = "DISCRIBE YOUR PROGRAM",
executables = executables
)
您的setup.py
文件现在应该像下面一样了:
import cx_Freeze, sys
base = None
if sys.platform == 'win32':
base = "Win32GUI"
executables = [cx_Freeze.Executable("YOUR_PROGRAM.py", base=base, targetName="NAME_OF_EXE")]
cx_Freeze.setup(
name="NAME_OF_EXE",
options={"build_exe": {"packages": ["tkinter"], "include_files": ["someImage.png", "anotherImage.png",]}},
version="1.0",
description="DESCRIBE YOUR PROGRAM",
executables=executables
)
返回目录
步骤3 创建可执行文件
现在我们可以运行setup.py
文件来创建我们的可执行文件:
>python setup.py build
这将创建一个名为build
的新文件夹。
在build
文件夹中,您会发现另一个名为“exe.win...”的文件夹(实际名称会有所不同)。
最后,在“exe.win...”的文件夹内,您将会找到一个应用程序,其名称与您在setup.py
文件中指定的名称相同。您现在可以在任何运行32位或64位Windows的计算机上运行此应用程序。请记住,只要创建exe文件的程序完成,您可以立即使用CLI运行它。 一旦你的Python程序执行完所有的代码行,它就会自动关闭。在CLI中运行它将使输出保持可见,直到您清除它。
如果您想更改可执行文件的图标,只需要将icon="ICON_NAME.ico
代码添加到您的executable
的设置中:
executables = [cx_Freeze.Executable("YOUR_PROGRAM.py", base=base, icon="ICON_NAME.ico", targetName="NAME_OF_EXE")]
...并且确保在您的字典变量options
中的include
键所对应的值的列表中包含该文件的文件名:
options={"build_exe": {"packages": ["tkinter"], "include_files": ["someImage.png", "anotherImage.png", "ICON_NAME.ico",]}},
如果需要更多的帮助,请参考cx_Freeze docs
返回目录