You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用cx_Freeze打包Python程序后报错路径显示编译路径求助

cx_Freeze打包后报错路径显示源码路径的解决方法

问题说明

使用cx_Freeze官方文档方法打包Python代码,程序运行正常,但报错时显示的是编译阶段的本地源码路径,而非可执行文件内的对应路径,需要调整配置让错误路径指向exe内的位置。

现有配置

setup.py代码

build_exe_options = {
  "optimize": 0,
  "excludes": ["PyQt6"]}

pkgs = find_namespace_packages(include=["controller*", "model*", "Resources*", "view*",  "DLL*"])

setup(name='myApp',
      version='0.0',
      packages=pkgs,
      install_requires=[
            'numpy',
            "scipy"
      ],
      include_package_data=True,
      options={"build_exe": build_exe_options},
      executables= Executable("app.py", base=None)

操作命令

python -m venv venv
venv\Scripts\activate
python.exe -m pip install --upgrade pip
pip install cx_freeze setuptools
pip install -e .
python setup.py build_exe

解决方案

问题源于缺少路径替换配置,cx_Freeze提供的replace_paths参数可将编译时的绝对路径替换为自定义路径。修改build_exe_options添加该参数即可:

build_exe_options = {
  "optimize": 0,
  "excludes": ["PyQt6"],
  # 将所有绝对源码路径替换为可执行文件内的相对路径标识
  "replace_paths": [("*", ".")]
}
  • ("*", ".")表示把所有原始绝对路径替换为当前目录(即exe所在目录的相对路径),也可指定具体规则如("<你的本地源码路径>", "<自定义名称>")来精准替换。
  • 该参数会修改打包后字节码中的路径信息,报错时将显示替换后的路径,而非原始本地源码路径。

内容的提问来源于stack exchange,提问作者Mour_Ka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 06:40:54