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

Bra*_*yer 6 python python-requests visual-studio-code 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. venv 在 VSCODE 中创建为 VSCODE 终端内工作区的子文件夹,并在创建时被 VSCODE 识别,并且我在 VSCODE 中使用 venv 解释器,如底部栏所示
  4. pip install requests在 VSCODE 内的终端内运行- 成功完成
  5. 运行pip freeze以确认 requests==2.22.0 已注册
  6. 已验证 pylint 已安装在 venv 中

我不明白为什么 VSCODE python 解释器无法识别安装了 requests

Wil*_* Wu 9

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

python --version
Run Code Online (Sandbox Code Playgroud)

并通过单击左下角检查使用的 python 版本 vscode IDE。 在此输入图像描述

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


小智 5

您检查过您的用户和工作区设置吗?

确保您的工作区设置(而不是用户设置)指向项目的venv路径。

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

{
    "python.pythonPath": "${workspaceFolder}/code/venv/bin/python"
}
Run Code Online (Sandbox Code Playgroud)


Bra*_*yer 1

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

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

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

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

  • 最佳实践是始终通过“python -m pip”运行 pip,以确保它针对您期望的解释器运行。有助于避免“pip”绑定到您不期望的 Python 安装/解释器。 (2认同)