Python3打包exe的两种方法:cx_Freeze与PyInstaller详解

洛溪
洛溪
发布时间:2026-10-13| 6人浏览过
原创

本文详细解析Python3打包exe文件的两种主流方法。首先介绍cx_Freeze的使用步骤及手动处理依赖的局限性,随后重点讲解推荐的PyInstaller工具,包括常用参数说明、打包命令及dist目录结构。针对打包过程中常见的setuptools版本报错问题,提供了具体的更新解决方案,帮助开发者高效完成Python程序发布。

本文深入解析了将Python3代码打包为exe可执行文件的两种具体方法,通过详细的示例代码展示操作流程,旨在为读者的学习或实际工作提供具有参考价值的技术指导。

方法一:cx_Freeze打包流程及缺陷

方法一:cx_Freeze(不推荐)

早期阶段,cx_Freeze是少数支持将Python3打包为exe的工具之一。以下是其基本使用示例:

首先,在待打包的Python源文件所在目录下,新建一个名为setup.py的配置文件:


#!/usr/bin/env python
# -*- coding: utf-8 -*-

from cx_Freeze import setup, Executable

base = None

executables = [
  Executable('你的代码.py', base=base)
]

setup(
  name="TTyb",
  version="1.0",
  description="打包示例",
  executables=executables
)

接着,在当前命令行环境中执行相应的打包命令:


python3 setup.py build

执行上述命令后,当前目录下会生成一个名为build的文件夹,其中包含生成的exe文件。

需要注意的是,cx_Freeze在打包时可能会忽略部分依赖文件。因此,通常需要手动从site-packages目录中拷贝相关依赖文件至build文件夹内,这一过程较为繁琐。

方法二:PyInstaller高效打包指南

方法二:PyInstaller(推荐)

随着PyInstaller开始支持Python3,打包流程变得更为简便。用户只需在当前命令行下执行以下命令即可:


#命令语法:pyinstaller -F 文件名(带后缀py)
#常用参数说明:
#–icon=图标路径
#-F 打包成一个exe文件
#-w 使用窗口,无控制台
#-c 使用控制台,无窗口
#-D 创建一个目录,里面包含exe以及其他一些依赖性文件
#pyinstaller -h 来查看参数

#将cmd的目录切换至(命令:cd 文件路径(注意空格))需要打包的py文件目录下:
#有命令窗口弹出
pyinstaller -F shjys_rjjqk.py 
#无命令窗口弹出
pyinstaller -F -w shjys_rjjqk.py 
#或者
pyinstaller -F shjys_rjjqk.py --noconsole

打包完成后,生成的exe文件位于同目录下的dist文件夹中。如果存在依赖文件,建议将其一并放入dist文件夹以确保程序正常运行。

若在打包过程中遇到错误提示:


for real_module_name, six_moduleAttributeError: 'str' object has no attribute 'items'

这通常表明当前的setuptools版本过低或不兼容。解决方法是直接更新该版本:


pip3 install -U setuptools

以上即为Python3打包exe的两种方法详解,希望能为各位的学习与应用带来帮助。欢迎持续关注本站以获取更多技术支持。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。