尽管我已经安装了该模块,为什么 VS Code 中仍会出现“ModuleNotFoundError”?

2024-12-27 08:47:00
admin
原创
219
摘要:问题描述:我正在尝试使用 VS Code 调试一些 Python 代码。我收到有关我确定已安装的模块的以下错误。Exception has occurred: ModuleNotFoundError No module named 'SimpleITK' File "C:UsersMidoDes...

问题描述:

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

Exception has occurred: ModuleNotFoundError
No module named 'SimpleITK'
  File "C:UsersMidoDesktopProstateX-projectsrc-preprocessing_resample_nifti.py", line 8, in <module>
    import SimpleITK as sitk

我使用以下方法安装了模块

sudo pip install SimpleITK

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


解决方案 1:

通过 安装新模块后pip,如果vs code无法识别它,则重新加载 vs code 可能会有效。

通过创建并激活以下内容,确保模块安装在虚拟环境中virtualenv

python3 -m venv env
source env/bin/activate

使用pip 安装模块 的正确方法(Brett Cannon 的文章)

python3 -m pip install new_module

将字符串“new_module”替换为您的模块名称。

Ctrl通过按下++并选择“重新加载窗口”Shift来重新加载 vs 代码。P

现在它将了解新的模块和自动完成功能。


编辑

特别考虑在像Debian 12这样的带有较新python3的新发行版中始终使用虚拟环境来管理 python 包。

根据PEP 668,将 Python 基础环境标记为“外部管理”

对于任何新项目总是创建新的环境

python3 -m venv env

source env/bin/activate并通过运行然后在其上安装软件包来激活它。要停用当前活动的虚拟环境,即 env 运行

deactivate

编辑

另外值得一提的是,要使用 pythonvenv模块我们必须事先安装它。

对于基于 Debian 的机器,这里是安装命令。

$ sudo apt install python3-venv 

解决方案 2:

sudo pip install最有可能是全局安装到与你在 VS Code 中选择的 Python 解释器不同的 Python 解释器中。请选择要使用的 Python 解释器,然后使用该解释器显式安装(如果你不使用虚拟环境,则使用类似/path/to/python -m pip install SimpleITK,尽管我强烈建议使用虚拟环境并且不要全局安装包)。

解决方案 3:

此错误是因为您的 VS Code 使用了另一个 Python 版本。

解决方案是配置 VS Code 以使用正确的 Python:

  1. 在终端中,找到当前的python版本:

py --version
  1. 在 VS Code 中,按Ctrl+ Shift+ P(在 Windows 上),然后输入:

Python:选择解释器

  1. 选择当前的python版本

解决方案 4:

在 Mac 中,正确选择 Python 解释器对我来说是有用的。

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

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

来源:VS Code 选择解释器

解决方案 5:

遇到过类似的问题,下面是我修复它的方法。请记住,在 VS 代码中运行代码有多种方法。并且对于每种方法,您最终可能会得到不同的解释器和环境。例如:

屏幕截图显示了“运行”菜单,底部窗格中有一行从“运行代码”到“输出”,底部窗格中有一行从“运行 Python 文件”到“终端”


1.创建虚拟环境并安装库

  1. 就我而言,我选择创建虚拟环境,并使用命令提示符在 VS Code 之外执行此操作:

python -m venv .plotting_test

在此处输入图片描述

  1. 我激活了它:

.plotting_testScriptsactivate.bat

  1. 我安装了额外的库:

python -m pip install matplotlib

  1. 我确认一切都安装正确:

python -m pip list

在此处输入图片描述

  1. 我还检查了当前目录的位置:

cd

在此处输入图片描述


  1. 将 VS Code 和 VS Code Code Runner 指向虚拟环境


  1. 打开 VS Code,关闭以前的工作区,打开新文件夹,在开始新工作时创建 test.py。按下ctrl + shift + p。选择Python: Select Interpreter

在此处输入图片描述

  1. + Enter interpreter path

在此处输入图片描述

  1. 导航到第 1 部分最后一步的目录。找到我在第一步中创建的虚拟环境文件夹,并将 VS 代码指向脚本中该版本的 python.exe:

在此处输入图片描述

  1. 经核实我被指出这样的:

在此处输入图片描述

  1. 保存为工作区,以便我可以为该项目创建默认工作区设置:

在此处输入图片描述

  1. 在工作区设置文件中,定义了在步骤 1 中为工作区解释器和 CODE RUNNER(!) 创建的虚拟环境的路径:

在此处输入图片描述

"settings": {
        "python.defaultInterpreterPath": "C:/Users/yyguy/.plotting_test/Scripts/python.exe",
        "code-runner.executorMap": {"python": "call C:/Users/yyguy/.plotting_test/Scripts/activate.bat && python -u"}
    }
}
  1. 重新加载窗口只是为了确保(ctrl + shift + p)=“开发人员:重新加载窗口”

在此处输入图片描述

  1. 现在运行代码并运行 python 文件应该在您指定的环境下执行:

在此处输入图片描述

在此处输入图片描述

解决方案 6:

很多建议的答案都建议更改 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)就可以正常工作。

来源:

使用 Conda 的 VS Code 中出现“模块未找到错误” - l3d00m 的回答

解决方案 7:

我在使用 VS Code 时遇到了这个问题,我通过将 VS Code 中的 Python 解释器设置为与系统路径中的解释器相同来解决了这个问题。例如,在 Windows 上,输入

echo %PATH%

并寻找 Python。

按照此处的流程操作: https:

//code.visualstudio.com/docs/python/python-tutorial#_select-a-python-interpreter

解决方案 8:

对于 Mac 用户

在终端中通过命令检查您正在使用哪个python which python。它将为您提供python解释器路径。之后输入cmd shift P并输入Python: Select interpreter

命令 Shift p
之后选择+ Enter interpreter path并粘贴运行命令后获得的路径which python

python 的结果

解决方案 9:

Ctrl+ Shift+ P(Windows) 或CMD+ Shift+ P(Mac) 查看此视图​​:

在此处输入图片描述

然后选择正确的解释器,确保它与您在项目中使用的 Python 版本和虚拟环境相同:

在此处输入图片描述

选择正确的解释器,一切都会正常运行。

解决方案 10:

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

解决方案 11:

微软的《VS Code 中的 Python 入门》描述了如何在 VS Code 需要的位置安装包:

  1. 使用Python:创建环境命令创建虚拟环境。

  2. 使用终端安装和使用包:创建新终端命令,然后输入适合您的操作系统的终端命令(例如python3 -m pip install <package>macOS)。

解决方案 12:

我遇到了同样的问题。我敢打赌你的文件顶部有一个 shebang 语句。如果你这样做的话。

  1. Visual Studio 设置

  2. 在“Code-runner->Code-runner: Respect Shebang”部分下或直接搜索“Code-runner: Respect Shebang”

  3. 取消选中天气以尊重 Shebang 运行代码。

现在它将在虚拟环境下运行并找到您使用 pip 安装的模块!:)

解决方案 13:

我为此苦苦挣扎了很长时间,几乎尝试了所有其他答案。我没有使用pip,所以这不是问题。但 VS Code 仍然找不到所选解释器中安装的模块。

最终归结为由于我切换到 miniconda 而存在的旧冲突,而 VS Code 仍在寻找 anaconda3。

我从我的机器上彻底清除了 VS Code 及其相关文件(缓存、首选项文件等)(一些说明),并安装了一个干净的版本。

现在可以按预期与 miniconda 同步。

解决方案 14:

我终于搞明白了。如果您的 vscode python 解释器与您的激活终端环境匹配,但您仍然收到“未找到模块错误”,则解决方法是您必须通过以下命令安装所有软件包:

conda install -n yourEnv yourPackage    

没有一个答案列出这个命令...

解决方案 15:

这是我在 Mac M2 上的奇怪的地方:

  1. 笔记本上的 Python 环境是否选择正确?是

  2. 集成终端上是否正确选择了Python环境? 是

  3. 终端能识别 Python 环境吗?是的

  4. 我可以从激活的终端安装库吗?是的

  5. 在 jupyter 笔记本或 python 会话中加载这些库时,我能找到它们吗?不,即使使用正确的激活环境安装了库,也会缺少库。

因此我发现(20 分钟后...!)该错误出在 VSCode 集成终端中

使用名为 conda virtualenvnotes我有以下内容:

  • VsCode 集成终端

(notes) $ which python
/Users/zzz/opt/anaconda3/envs/notes/bin/python
(notes) $ which pip
/Library/Frameworks/Python.framework/Versions/3.11/bin/pip  # WRONG!!
(notes) $ which python
/Users/zzz/opt/anaconda3/envs/notes/bin/python
(notes) $ which pip
/Users/zzz/opt/anaconda3/envs/notes/bin/pip  # CORRECT!!

由于某种原因,VsCode 会覆盖pip(或pip3)指向库框架的库。已安装的库都安装在 Framework python 中,尝试从 conda notes 环境加载它们时找不到它们,因为那里没有安装任何东西。

我找不到比避免使用 VScode 终端而改用 iterm 更好的解决方案。

解决方案 16:

查看:

  • 是否选择了Python环境?

  • 终端能识别 Python 环境吗?

  • 我可以从激活的终端运行 Python 代码吗?

  • 当我使用“开始调试”时,代码是否可以无错误运行?

如果以上所有问题的答案都是“是”,那么请尝试使用选项“在终端中运行 Python 文件”(使用 Code Runner 扩展)运行代码。并为其分配一个新的快捷方式以供将来使用。

运行代码的屏幕截图

解决方案 17:

如何修复 Visual Studio 代码中未找到模块的错误?解决 VSCode ModuleNotFoundError:没有名为 X 的模块错误如果您希望导入模块,请确保您从包文件夹(而不是从包/模块)运行。计算工作。您还可以将 PYTHONPATH 环境变量设置为包文件夹的路径。

解决方案 18:

创建虚拟环境并在该环境中安装所需的软件包后,关闭 VS 代码。对于 Windows 平台,打开命令提示符并导航到创建虚拟环境文件夹的文件夹。然后使用命令从那里启动 VS 代码code .

例如:我的虚拟环境名称是 .imgenv,它位于 C:\py_stuff\projects 中,因此,我导航到 C:\py_stuff\projects,然后输入code .

现在,你的 VS 代码应该可以识别这些包了!

解决方案 19:

重命名包含虚拟环境的文件夹后遇到了这个问题。

解决方案是删除并重新创建虚拟环境。

解决方案 20:

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

解决方案 21:

如果您安装了不同的 Python 版本,请确保安装正确的模块。

python -m pip install <module>

或者

python3 -m pip install <module>

解决方案 22:

从用户目录以外的目录运行您的环境。我解决了从 C:\Code\ProjectA\ 运行我的环境的问题

我通过运行发现了我的问题:

IMPORT os

Mycwd = os.getcwd()
PRINT(Mycwd)

解决方案 23:

.venv/Lib/SitePackages是 Vscode 查找模块的默认目录。

通过命令 Pallete创建 .venv 时会自动创建此目录。

通过 pip 安装的外部模块默认放在此目录中。

将自行创建的模块手动放入此文件夹内。

在此处输入图片描述

解决方案 24:

注意1:注意终端

你安装 pip 包的终端可能与你调试/运行 python 的终端不同,例如一个是 powershell 而另一个是 bash,最好配置为使用相同的终端类型或确保它们使用相同的 python 和 pip(通过 python -V 和 pip list -v 验证)

注释 2:python 和 pip

确保您使用的 python 版本与 pip 一致,例如有时人们将 pip 安装到 %AppData%\Local\Programs\Python\Python310 并在 %AppData%\Local\Programs\Python\Python312 中运行 python

注意 3:VS Code 不会改变 Python 环境

有时 vscode 可能无法工作,我的意思是有人遇到过这种情况,当你尝试选择 python 解释器版本时,他们认为他们做到了,但 vscode 未能接受他们选择的内容,请参阅此主题以解决问题

所以最后,这很简单,冷静下来,检查你的软件包安装到哪里,确保它与你在调试/运行期间使用的 python 版本一致

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   1565  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1354  
  信创国产芯片作为信息技术创新的核心领域,对于推动国家自主可控生态建设具有至关重要的意义。在全球科技竞争日益激烈的背景下,实现信息技术的自主可控,摆脱对国外技术的依赖,已成为保障国家信息安全和产业可持续发展的关键。国产芯片作为信创产业的基石,其发展水平直接影响着整个信创生态的构建与完善。通过不断提升国产芯片的技术实力、产...
国产信创系统   21  
  信创生态建设旨在实现信息技术领域的自主创新和安全可控,涵盖了从硬件到软件的全产业链。随着数字化转型的加速,信创生态建设的重要性日益凸显,它不仅关乎国家的信息安全,更是推动产业升级和经济高质量发展的关键力量。然而,在推进信创生态建设的过程中,面临着诸多复杂且严峻的挑战,需要深入剖析并寻找切实可行的解决方案。技术创新难题技...
信创操作系统   27  
  信创产业作为国家信息技术创新发展的重要领域,对于保障国家信息安全、推动产业升级具有关键意义。而国产芯片作为信创产业的核心基石,其研发进展备受关注。在信创国产芯片的研发征程中,面临着诸多复杂且艰巨的难点,这些难点犹如一道道关卡,阻碍着国产芯片的快速发展。然而,科研人员和相关企业并未退缩,积极探索并提出了一系列切实可行的解...
国产化替代产品目录   28  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用