尽管我安装了VS代码,但模块未找到错误

时间:2019-06-19 00:15:59

标签: python module visual-studio-code

我正在尝试使用VS代码调试一些python代码。我收到有关我确定已安装的模块的以下错误。

Exception has occurred: ModuleNotFoundError
No module named 'SimpleITK'
  File "C:\Users\Mido\Desktop\ProstateX-project\src\01-preprocessing\03_resample_nifti.py", line 8, in <module>
    import SimpleITK as sitk

我使用

安装了模块

sudo pip install SimpleITK

我知道它已安装,因为通过命令行运行代码时遇到类似错误,并且通过执行上述操作已将其修复。我不明白为什么VS代码无法识别

8 个答案:

答案 0 :(得分:4)

在 Mac 中,正确选择 Python 解释器对我有用:

在 VS Code 中,通过打开命令面板 (⇧⌘P) 选择 Python 3 解释器,开始输入 Python:选择要搜索的解释器命令,然后选择命令。如果可用,您还可以使用状态栏上的“选择 Python 环境”选项(它也可能已显示选定的解释器):

未选择口译员

该命令提供了 VS Code 可以自动找到的可用解释器列表,包括虚拟环境。如果您没有看到所需的解释器,请参阅配置 Python 环境。

来源:VS Code Select Interpreter

答案 1 :(得分:2)

有很多建议的答案建议更改 launch.json 或 settings.json 文件。但是,这些解决方案都不适合我。

我的情况:

  1. 是否选择了 Python 环境?是的
  2. 终端是否识别 Python 环境?是的
  3. 我可以从激活的终端运行 Python 代码吗?是的
  4. 当我使用“开始调试”时,代码运行时是否没有错误?是的
  5. 当我单击“运行代码”时代码是否运行?否

对我有用的唯一解决方案是:

  1. 打开 Windows 终端(或 cmd)
  2. 激活环境:conda activate <environment_name>
  3. 从终端打开 Visual Studio Code:code

然后,“运行代码”(#5)运行没有任何问题。

来源:
"module not found error" in VS Code using Conda - l3d00m's answer

答案 2 :(得分:1)

sudo pip install最有可能全局安装到与VS Code中选择的Python解释器不同的Python解释器中。请select the Python interpreter you want to use,然后使用该解释程序进行显式安装(如果您未使用虚拟环境,则使用/path/to/python -m pip install SimpleITK之类的东西,尽管我强烈建议使用虚拟环境,并且不能在全球范围内安装软件包。

答案 3 :(得分:1)

在vscode无法识别的情况下,使用pip安装新模块后,重新加载vscode。

install modulepython3 -m pip install {new_module}

重新加载vscode: Ctrl + Shift + P ,选择 重新加载窗口

答案 4 :(得分:0)

尝试在VS Code中运行pip列表以检查模块是否已安装,然后检查您的python版本是否正确/是否支持该版本的SimpleITK。您用于VS Code的python解释器可能存在问题(即,该模块可能安装在与VS Code所使用的Python实例不同的python实例上)

答案 5 :(得分:0)

我遇到了VSCode的问题,并通过以下过程将VSCode中的Python解释器设置为与系统路径中的解释器相同(在Windows上键入“ echo%PATH%”并查找Python),从而解决了该问题: https://code.visualstudio.com/docs/python/python-tutorial#_select-a-python-interpreter

答案 6 :(得分:0)

是否选择了 Python 环境? 终端是否识别 Python 环境? 我可以从激活的终端运行 Python 代码吗? 当我使用“开始调试”时,代码是否运行没有错误?

如果上面的答案是“是”。

那么, 尝试使用“在终端中运行 python 文件”选项运行代码。并为它分配一个新的快捷方式以备将来使用...

答案 7 :(得分:0)

我刚刚遇到了同样的问题。我发现如果我在 shift enter 之前选择所有文本,脚本将编译为文件而不是单行。