Windows10下Anaconda调用numpy报DLL加载错误、路径大小写不匹配问题
问题根因分析
- 路径大小写问题无需纠结:Windows系统默认对文件路径大小写不敏感,报错信息里的小写
lib和实际存在的大写Lib是同一个路径,不是报错的诱因。 - 核心原因确实和PATH配置直接相关:你没有将Anaconda路径加入系统PATH,只有Anaconda Prompt启动时会自动临时注入当前激活conda环境的依赖路径(包括
Library/bin、Scripts等存放numpy依赖的MKL、OpenBLAS等动态链接库的路径)到进程的PATH变量中。而直接从桌面/开始菜单启动的Sublime、VS Code进程继承的是系统默认PATH,没有Anaconda的相关路径,加载numpy时找不到依赖的DLL就会触发报错。就算你配置了conda扩展选了Python解释器,大部分编辑器的conda扩展只会指定Python解释器路径,不会自动完整加载conda环境的全部依赖路径到进程环境变量,所以还是会报错。
解决方案
- 方案一(无配置成本,推荐临时使用):每次启动编辑器前先打开Anaconda Prompt,激活你要使用的conda环境,再在Anaconda Prompt中输入
code启动VS Code,或者输入subl启动Sublime Text,编辑器进程会自动继承Anaconda Prompt的全部环境变量,即可正常调用numpy、sklearn等包。 - 方案二(编辑器单独配置,不影响全局环境):
- VS Code:打开对应项目的
.vscode/launch.json,在配置项中添加env字段,将conda环境的几个核心路径追加到PATH中,示例如下(如果是自定义环境,将路径中的Anaconda3替换为对应Anaconda3/envs/你的环境名即可):{ "version": "0.2.0", "configurations": [ { "name": "Python: 当前文件", "type": "python", "request": "launch", "program": "${file}", "console": "integratedTerminal", "env": { "PATH": "C:\\ProgramData\\Anaconda3;C:\\ProgramData\\Anaconda3\\Scripts;C:\\ProgramData\\Anaconda3\\Library\\bin;C:\\ProgramData\\Anaconda3\\Library\\mingw-w64\\bin;${env:PATH}" } } ] } - Sublime Text:修改你的Python构建系统配置,新增
env字段,和上面一样追加Anaconda的相关路径到PATH即可。
- VS Code:打开对应项目的
- 方案三(全局配置,一劳永逸):将上述几个Anaconda核心路径添加到当前Windows用户的PATH环境变量中,注意不要添加到系统PATH避免污染全局环境,添加完成后重启所有编辑器进程即可生效。
- 额外排查点:如果上述方案执行后仍报错,大概率是numpy是通过pip安装而非conda安装,依赖库不匹配导致。执行
pip uninstall numpy卸载后,用conda install numpy重新安装conda源的numpy包即可解决。
内容的提问来源于stack exchange,提问作者SunnyPenguin
相关产品推荐
相关产品推荐

