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

使用cx_Freeze将调用Ursina的Python脚本打包为exe时报错如何解决

cx_Freeze打包Ursina项目报错解决方案

核心报错原因是cx_Freeze自动打包时,未完整收录Ursina依赖的资源文件和底层panda3d模块文件,需修改打包配置补全规则。

1 调整setup.py打包配置

参考如下配置修改你的setup.py文件:

import sys
from cx_Freeze import setup, Executable
import ursina
import os

# 手动指定Ursina的assets资源目录
ursina_assets = os.path.join(os.path.dirname(ursina.__file__), 'assets')
build_exe_options = {
    "packages": ["ursina", "panda3d"],
    "include_files": [(ursina_assets, "ursina/assets")],
    # 如果你有自定义的项目资源,按下面格式添加
    # "include_files": [(ursina_assets, "ursina/assets"), ("./你的自定义资源路径", "./输出目录下的路径")]
}

base = None
if sys.platform == "win32":
    base = "Win32GUI" # 如果你不需要控制台窗口就保留这个配置,需要的话注释掉

setup(
    name = "你的项目名",
    version = "1.0",
    description = "你的项目描述",
    options = {"build_exe": build_exe_options},
    executables = [Executable("你的入口脚本名.py", base=base)]
)

配置说明:

  • packages参数强制包含Ursina和panda3d全量包,避免cx_Freeze自动检测遗漏依赖模块
  • include_files参数将Ursina内置的assets资源目录拷贝到打包输出目录,解决运行时找不到内置纹理、模型的报错

2 重新执行打包

  • 先删除之前生成的build、dist文件夹,清空旧打包缓存
  • 执行打包命令:python setup.py build

3 额外兼容处理

如果打包完成后运行提示缺少系统dll文件,可直接将对应dll复制到打包后的可执行文件同目录,或者把dll路径添加到include_files列表里一起打包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 08:15:02