2021-06-18 将Python代码转换成EXE

译自: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
    • 将较大的Python程序转换为exe文件
      • 步骤1 也需要安装cx_Freeze
      • 步骤2 创建setup.py文件
      • 步骤3 创建可执行文件

这个指南将帮助您通过使用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中,它将使输出保持可见。其中的distNAME_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_Freezesys这两个模块:


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项目,这两个图片分别为someImageanotherImage。您的程序中所使用这两个图片都需要保存在与您的程序相同的目录下。):


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

返回目录


你可能感兴趣的:(2021-06-18 将Python代码转换成EXE)