ModuleNotFoundError:在vscode中没有使用venv命名为“ requests”的模块

时间:2019-09-30 00:59:46

标签: python visual-studio-code python-requests virtual-environment

我有1个文件,到达第1行import requests,仅此而已,我收到以下error ModuleNotFoundError: No module named 'requests'

  1. 使用Visual Studio Code(今天与独立的Python x64 3.7.4一起安装)
  2. 在VSCODE中安装的Python扩展
  3. 在VSCODE中创建的venv作为VSCODE终端内工作区的子文件夹,并且在创建时被VSCODE识别,并且我正在VSCODE中使用venv解释器,如底部栏所示
  4. 在VSCODE内部的终端中运行pip install requests-成功完成
  5. 运行pip freeze确认请求== 2.22.0已注册
  6. 经过验证的pylint已安装在venv中

我不知道为什么VSCODE python解释器无法识别已安装请求

4 个答案:

答案 0 :(得分:2)

您是否检查了用户和工作区设置?

确保您的工作区设置(而非用户设置)指向项目的#include <iostream> #include <map> using namespace std; typedef struct { }NODE; int main() { std::map<int, NODE*> mp; int i = 0; mp.emplace(i, new NODE()); return 0; } 路径。

我遇到了类似的问题,例如您的问题,但是能够通过将工作区设置python路径更改为指向我的venv路径来解决此问题,如下所示。

venv

答案 1 :(得分:0)

本地是否有多个python环境? 也许尝试:

pip3.7 install requests

答案 2 :(得分:0)

感谢您的答复。几个小时后我发现了自己的问题。

首先,我发现在VSCODE中运行终端时,它正在针对全局解释器运行。然后,我尝试了./pip freeze,它按预期工作。这告诉我终端连接到错误的解释器。

出于某种原因,当我要“运行”文件时,它正在终端中执行,但没有“激活” venv。我已经关闭并重新打开VSCODE了很多次,但是由于某种原因,当我关闭终端窗口并使用CTRL + SHIFT +'重新打开时,当我尝试使用PS1脚本激活venv时,我收到了有关签名脚本的错误。我在正常的PowerShell窗口中运行Set-ExecutionPolicy -ExecutionPolicy RemoteSigned,然后在VSCODE中重新打开了Terminal窗口,它成功激活了我的venv,并且我知道在终端行的开头看到我的venv名称。然后,我运行“点冻结”以确认在venv中安装了哪些模块,然后在正常的powershell窗口中再次运行,这是不同的。

后来我发现某个地方有可以运行Set-ExecutionPolicy -ExecutionPolicy RemoteSigned的文档,但是很高兴知道这是一个要求。

答案 3 :(得分:0)

尝试在vscode终端中获取python版本

python --version

并通过单击左下角来检查使用的python版本vscode IDE。 enter image description here

确保这两个版本一致。如果没有,请选择与终端版本相同的IDE版本。