尽管我已经安装了该模块,为什么 VS Code 中仍会出现“ModuleNotFoundError”?
- 2024-12-27 08:47:00
- admin 原创
- 219
问题描述:
我正在尝试使用 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:
在终端中,找到当前的python版本:
py --version
在 VS Code 中,按
Ctrl
+Shift
+P
(在 Windows 上),然后输入:
Python:选择解释器
选择当前的python版本
解决方案 4:
在 Mac 中,正确选择 Python 解释器对我来说是有用的。
在 VS Code 中,打开命令面板 (⇧⌘P),输入“Python: 选择解释器”作为搜索命令,然后选择该命令,选择一个 Python 3 解释器。如果可用,您还可以使用状态栏上的“选择 Python 环境”选项(它可能已经显示了选定的解释器):
该命令会显示 VS Code 可以自动找到的可用解释器列表,包括虚拟环境。如果您没有看到所需的解释器,请参阅配置 Python 环境。
来源:VS Code 选择解释器
解决方案 5:
遇到过类似的问题,下面是我修复它的方法。请记住,在 VS 代码中运行代码有多种方法。并且对于每种方法,您最终可能会得到不同的解释器和环境。例如:
1.创建虚拟环境并安装库
就我而言,我选择创建虚拟环境,并使用命令提示符在 VS Code 之外执行此操作:
python -m venv .plotting_test
我激活了它:
.plotting_testScriptsactivate.bat
我安装了额外的库:
python -m pip install matplotlib
我确认一切都安装正确:
python -m pip list
我还检查了当前目录的位置:
cd
将 VS Code 和 VS Code Code Runner 指向虚拟环境
打开 VS Code,关闭以前的工作区,打开新文件夹,在开始新工作时创建 test.py。按下
ctrl + shift + p
。选择Python: Select Interpreter
:
+ Enter interpreter path
导航到第 1 部分最后一步的目录。找到我在第一步中创建的虚拟环境文件夹,并将 VS 代码指向脚本中该版本的 python.exe:
经核实我被指出这样的:
保存为工作区,以便我可以为该项目创建默认工作区设置:
在工作区设置文件中,定义了在步骤 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"}
}
}
重新加载窗口只是为了确保(ctrl + shift + p)=“开发人员:重新加载窗口”
现在运行代码并运行 python 文件应该在您指定的环境下执行:
解决方案 6:
很多建议的答案都建议更改 launch.json 或 settings.json 文件。但是,这两种解决方案都不适用于我。
我的情况:
是否选择了Python环境?是
终端可以识别 Python 环境吗?是的
我可以从激活的终端运行 Python 代码吗?是的
当我使用“开始调试”时,代码是否可以无错误运行?是的
当我点击“运行代码”时代码会运行吗?不会。
对我有用的唯一解决方案是:
打开 Windows 终端(或 cmd)
激活环境:
conda activate <environment_name>
从终端打开 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
。
之后选择+ Enter interpreter path
并粘贴运行命令后获得的路径which 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 需要的位置安装包:
使用Python:创建环境命令创建虚拟环境。
使用终端安装和使用包:创建新终端命令,然后输入适合您的操作系统的终端命令(例如
python3 -m pip install <package>
macOS)。
解决方案 12:
我遇到了同样的问题。我敢打赌你的文件顶部有一个 shebang 语句。如果你这样做的话。
Visual Studio 设置
在“Code-runner->Code-runner: Respect Shebang”部分下或直接搜索“Code-runner: Respect Shebang”
取消选中天气以尊重 Shebang 运行代码。
现在它将在虚拟环境下运行并找到您使用 pip 安装的模块!:)
解决方案 13:
我为此苦苦挣扎了很长时间,几乎尝试了所有其他答案。我没有使用pip
,所以这不是问题。但 VS Code 仍然找不到所选解释器中安装的模块。
最终归结为由于我切换到 miniconda 而存在的旧冲突,而 VS Code 仍在寻找 anaconda3。
我从我的机器上彻底清除了 VS Code 及其相关文件(缓存、首选项文件等)(一些说明),并安装了一个干净的版本。
现在可以按预期与 miniconda 同步。
解决方案 14:
我终于搞明白了。如果您的 vscode python 解释器与您的激活终端环境匹配,但您仍然收到“未找到模块错误”,则解决方法是您必须通过以下命令安装所有软件包:
conda install -n yourEnv yourPackage
没有一个答案列出这个命令...
解决方案 15:
这是我在 Mac M2 上的奇怪的地方:
笔记本上的 Python 环境是否选择正确?是
集成终端上是否正确选择了Python环境? 是
终端能识别 Python 环境吗?是的
我可以从激活的终端安装库吗?是的
在 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 版本一致