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

如何解决Windows下Python3.6的scipy.spatial模块DLL加载失败问题?

解决Windows Python3.6下Scipy qhull DLL加载失败问题

我知道你已经折腾一周了,这种明明能找到源码文件却加载不了DLL的问题确实头疼。针对你遇到的ImportError: DLL load failed: Le module spécifié est introuvable错误,给你几个针对性的解决方案:

  • 先确认VC++运行时库是否安装
    Scipy 1.3.1依赖Visual C++ 2017 Redistributable(x64版本,因为你的Python是64位)。很多时候DLL加载失败都是因为缺少这个基础运行库,你需要安装对应x64版本的运行时包。

  • 重新检查Scipy的安装完整性
    虽然你已经用Gohlke的whl重装过,但还是有可能安装过程中丢了文件:

    1. 先彻底卸载当前Scipy:pip uninstall -y scipy
    2. 找到你下载的scipy-1.3.1-cp36-cp36m-win_amd64.whl文件,用pip install 完整路径\scipy-1.3.1-cp36-cp36m-win_amd64.whl重新安装,安装时注意看有没有报错信息。
    3. 去C:\Users\Alexis\AppData\Local\Programs\Python\Python36\lib\site-packages\scipy\spatial目录下,检查有没有qhull.dll或者类似的DLL文件,如果没有,说明安装包有问题或者安装过程出错了。
  • 手动把Scipy的DLL路径加入环境变量
    Windows加载DLL时会从PATH环境变量里找路径,你可以临时在脚本开头添加这段代码,强制让Python找到Scipy的DLL:

    import os
    import sys
    # 拼接Scipy spatial模块的路径
    scipy_spatial_path = os.path.join(sys.exec_prefix, 'Lib', 'site-packages', 'scipy', 'spatial')
    # 把路径加到PATH最前面,确保优先加载
    os.environ['PATH'] = scipy_spatial_path + ';' + os.environ['PATH']
    
    # 然后再导入模块
    from scipy.spatial.distance import cdist
    

    这样试试能不能正常导入。

  • 降级到Scipy 1.2.1试试
    有时候新版本的Scipy对老Python版本的兼容性反而不如旧版,你可以试试Scipy 1.2.1的对应whl文件,卸载当前版本后安装这个版本,说不定能解决DLL依赖的问题。

  • 确认Python位数和whl文件匹配
    你下载的是win_amd64的whl,必须确保你的Python是64位的。运行这段代码检查:

    import sys
    print(sys.maxsize > 2**32)
    

    如果返回True就是64位,要是返回False,说明你装的是32位Python,得换成64位的或者下载对应32位的Scipy whl。

为什么会出现这个问题?

PyCharm能找到qhull.py不代表底层的C扩展DLL能被加载——Scipy的qhull模块是基于C编写的,需要依赖qhull.dll这类底层文件,这个文件要么没安装到位,要么系统找不到它的路径,就会抛出DLL加载失败的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:08:00