背景:因为使用 cx_Freeze 打包时,添加需要依赖的文件
cx_Freeze 是一个用于将 Python 程序打包成独立可执行文件的工具,支持多个平台。当你需要打包包含多个 .py 文件的项目时,你可以通过编写一个 setup.py 文件来指定哪些模块应该被包含在最终的打包中,打包之后,可以看到依赖的源代码
from cx_Freeze import setup, Executable
# 这里列出你的所有 .py 文件,包括主入口文件
include_files = ['main.py', 'module1.py', 'module2.py']
# 设置你的可执行文件的信息
executables = [
Executable('main.py', base='Win32GUI' if sys.platform == 'win32' else None),
]
# 调用 setup 函数
setup(
name="YourAppName",
version="1.0",
description="Your app description",
options={"build_exe": {"packages":["os"], "include_files":include_files}},
executables=executables
)
效果:
目的:最终的可执行文件中不直接暴露源代码,尤其是那些被导入的 .py 文件,步骤:
1.编译 .py 文件为 .pyc 文件:
python -m compileall .
#这个命令会在当前目录下生成一个 __pycache__ 目录,里面包含了编译后的 .pyc 文件。
2.在 setup.py 中指定 .pyc 文件:修改setup.py 文件,确保 cx_Freeze 包括的是 .pyc 文件而不是 .py 文件。你可以在 include_files 或 packages 参数中指定 .pyc 文件的位置。
from cx_Freeze import setup, Executable
setup(
name="YourAppName",
version="1.0",
description="Your app description",
options={"build_exe": {"include_files": ["__pycache__/helpers.pyc"]}},
executables=[Executable("main.py", base="Win32GUI" if sys.platform == "win32" else None)]
)
效果: