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

使用cx_Freeze打包exe时出现FileNotFoundError: scipy.libs错误的解决方法

解决cx_Freeze打包exe时scipy.libs找不到的问题

这个错误是因为cx_Freeze默认不会自动复制scipy依赖的scipy.libs目录到打包后的路径,而scipy运行必须依赖这个目录里的动态链接库。下面是几个可行的解决方法:

方法一:手动指定复制scipy.libs目录

先找到scipy的安装路径,运行以下Python代码获取:

import scipy
import os
print(os.path.join(os.path.dirname(scipy.__file__), "libs"))

然后修改你的setup.py,添加include_files参数来手动复制这个目录:

from cx_Freeze import setup, Executable
import scipy
import os

# 获取scipy.libs的实际路径
scipy_libs_src = os.path.join(os.path.dirname(scipy.__file__), "libs")
# 目标路径要和报错里的路径对应,即打包后的lib/scipy.libs
scipy_libs_dest = "lib/scipy.libs"

build_exe_options = {
    "packages": ["torch", 'tensorflow', 'scipy'],
    "include_files": [(scipy_libs_src, scipy_libs_dest)]
}

target = Executable(script='sub.py')
setup(
    name='my',
    options={'build_exe': build_exe_options},
    executables=[target]
)

方法二:升级cx_Freeze并启用自动hook

部分新版本的cx_Freeze内置了处理scipy的hook,能自动识别并复制scipy.libs。先升级cx_Freeze到最新稳定版:

pip install --upgrade cx_Freeze

然后修改setup.py,确保scipy被加入packages列表:

from cx_Freeze import setup, Executable

build_exe_options = {
    "packages": ["torch", 'tensorflow', 'scipy'],
    "include_msvcr": True  # 顺带确保VC运行库被包含,避免额外依赖问题
}

target = Executable(script='sub.py')
setup(
    name='my',
    options={'build_exe': build_exe_options},
    executables=[target]
)

方法三:调整scipy版本适配环境

如果你的scipy版本和Python 3.8、cx_Freeze不兼容,也可能出现路径识别问题。可以尝试安装对Python3.8兼容性较好的scipy版本:

pip install scipy==1.7.3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 19:05:21