DLL 加载失败:找不到特定模块(VSCode、Numpy)

Ove*_*gon 3 python numpy anaconda visual-studio-code

发生错误import numpy as np;命令在终端中直接输入时工作正常,但通过Code Runner运行时失败。我在下面重现的步骤。

的输出import sys; print(sys.version)3.7.5 (default, Oct 31 2019, 15:18:51) [MSC v.1916 64 bit (AMD64)]。VSCode 显示它正在运行预期的 Python 解释器:Python 3.7.5 64-bit ('vsc': conda)在左下窗格(见剪辑)。- 简短的视频演示

有关启用的扩展和内容的完整列表settings.json,请参阅相关的 Git

是什么问题,如何解决?


环境信息:Windows 10 x64、Anaconda 10/19(虚拟环境)、VSCode 1.41.1


重现步骤:

conda create --name vsc
conda activate vsc
conda install python==3.7.5
conda install numpy
# in VSCode: import numpy as np, etc
Run Code Online (Sandbox Code Playgroud)

完整追溯

conda create --name vsc
conda activate vsc
conda install python==3.7.5
conda install numpy
# in VSCode: import numpy as np, etc
Run Code Online (Sandbox Code Playgroud)

编辑settings.json根据詹姆斯的建议添加以下内容:

"terminal.integrated.shell.windows": "C:\\Windows\\System32\\cmd.exe",
"terminal.integrated.shellArgs.windows": ["/K", "D:\\Anaconda\\Scripts\\activate.bat D:\\Anaconda"],
"python.condaPath": "D:\\Anaconda\\Scripts\\conda.exe"
Run Code Online (Sandbox Code Playgroud)

Jam*_*mes 8

根据您的评论,看起来 VSCode 没有激活 conda 环境。选择 Python 解释器会将 VSCode 指向 Python 可执行文件 (python.exe),但有时使用 Conda 设置的环境变量来告诉具有大型后端的包在哪里查找已编译的二进制文件。

Conda 这样做是为了节省空间。如果您已经在一个环境中拥有这些 DLL,它有时会在创建新环境时链接到它们,而不是再次安装它们。因此,目标是让 VSCode 以与通过“开始”菜单使用 Conda 的方式相同的方式使用 Conda:在启动 Python 之前启动 Anaconda 命令提示符。

在 VSCode 中settings.json,使用以下操作打开文件进行编辑:

(type)               CTRL + SHIFT + P
(search for:)        open settings
(click:)             Preferences: Open Settings (JSON)
Run Code Online (Sandbox Code Playgroud)

我们将向 JSON 文件添加 3 行。第一个告诉 VSCode 使用 Windows 集成外壳。第二个在启动每次运行的 Windows Shell 时添加额外的参数;这是我们将激活基础 Conda 环境的地方。(这只是从 Anaconda 命令提示符快捷方式属性中复制/粘贴的。)第三行让 VSCode 位于您的 Conda 可执行文件所在的位置,以便它可以正确地更改环境。

我的 Anaconda 基础环境位于C:\Anaconda3\. 您将需要修改安装路径。

settings.json
Run Code Online (Sandbox Code Playgroud)
(type)               CTRL + SHIFT + P
(search for:)        open settings
(click:)             Preferences: Open Settings (JSON)
Run Code Online (Sandbox Code Playgroud)

保存文件,将您的解释器更改为baseconda 环境,重新启动 VSCode,再次将您的解释器更改为vsc.