VSCode Anaconda环境下.ipynb导包正常但.py文件导包报错
问题现象
- VSCode搭配Jupyter扩展、Anaconda环境使用时,
.ipynb文件运行完全正常,包导入无异常:
- 即使手动选择了完全相同的Python解释器,运行
.py文件时导入任意包都会触发报错:
报错信息
运行脚本时终端输出如下:
PS C:\Users\Raul> & G:/anaconda3/envs/PBTeste/python.exe "c:/Users/Raul/Desktop/OneDrive/DI ROCHA/Projeto Bollinger/projeto_bollinger.py" G:\anaconda3\envs\PBTeste\lib\site-packages\numpy\__init__.py:148: UserWarning: mkl-service包导入失败,无法保证Intel(R) MKL正常初始化:Python进程已加载Gnu OpenMP的场景下,MKL开箱即用的运行正确性无法保障,请安装mkl-service包。 from . import _distributor_init Traceback (most recent call last): File "G:\anaconda3\envs\PBTeste\lib\site-packages\numpy\core\__init__.py", line 22, in <module> from . import multiarray File "G:\anaconda3\envs\PBTeste\lib\site-packages\numpy\core\multiarray.py", line 12, in <module> from . import overrides File "G:\anaconda3\envs\PBTeste\lib\site-packages\numpy\core\overrides.py", line 7, in <module> from numpy.core._multiarray_umath import ( ImportError: DLL load failed: 找不到指定模块。 During handling of the above exception, another exception occurred: Traceback (most recent call last): File "c:/Users/Raul/Desktop/OneDrive/DI ROCHA/Projeto Bollinger/projeto_bollinger.py", line 11, in <module> import numpy as np File "G:\anaconda3\envs\PBTeste\lib\site-packages\numpy\__init__.py", line 150, in <module> from . import core File "G:\anaconda3\envs\PBTeste\lib\site-packages\numpy\core\__init__.py", line 48, in <module> raise ImportError(msg) ImportError: 重要提示:请阅读以下内容获取问题解决参考 导入numpy C扩展失败,该错误通常由环境配置异常、NumPy安装损坏导致。 请核对以下信息: * 当前Python版本:Python3.7,解释器路径"G:\anaconda3\envs\PBTeste\python.exe" * 当前NumPy版本:"1.21.5" 请确认上述版本与预期使用版本一致。 原始错误:DLL load failed: 找不到指定模块。
故障原因
Jupyter扩展启动ipynb内核时会自动完成conda环境激活,自动注入Anaconda虚拟环境所需的DLL搜索路径,因此ipynb运行正常。直接调用虚拟环境下的python.exe运行.py文件时,如果没有提前激活conda环境,系统不会加载Anaconda的环境变量配置,依赖的MKL等动态链接库路径不在搜索范围内,就会触发DLL加载失败的报错。
解决方案
按优先级依次尝试以下操作:
- 开启VSCode自动激活conda环境的配置
打开VSCode设置,分别搜索以下两个配置项,确保均为开启状态:python.terminal.activateEnvironment:Python终端启动时自动激活选中的conda环境terminal.integrated.inheritEnv:集成终端继承VSCode进程的环境变量
配置完成后完全关闭VSCode重启,新建终端重新运行.py文件即可。
- 手动激活conda环境后再运行脚本
如果不想修改VSCode配置,可以在终端先执行激活命令,再运行脚本:conda activate PBTeste python "c:/Users/Raul/Desktop/OneDrive/DI ROCHA/Projeto Bollinger/projeto_bollinger.py" - 修复损坏的依赖包
如果上述操作无效,激活PBTeste虚拟环境后执行命令,重装存在问题的依赖包:conda install numpy mkl-service --force-reinstall
内容的提问来源于stack exchange,提问作者Raul
相关产品推荐
相关产品推荐

