【问题标题】:ModuleNotFoundError: No module named 'requests' using venv in vscodeModuleNotFoundError:在 vscode 中没有使用 venv 的名为“请求”的模块
【发布时间】:2020-01-29 07:17:24
【问题描述】:

我有 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 解释器无法识别请求已安装

【问题讨论】:

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


    【解决方案1】:

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

    python --version
    

    并通过单击左下角检查使用的 python 版本 vscode IDE。

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

    【讨论】:

    • 这解决了我的问题。谢谢!
    【解决方案2】:

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

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

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

    {
        "python.pythonPath": "${workspaceFolder}/code/venv/bin/python"
    }
    

    【讨论】:

    • 当 AREPL 扩展出现此问题时,这为我解决了类似的问题,但运行程序正常工作。在 AREPL Python 路径中尝试这个允许 AREPL 找到模块。
    【解决方案3】:

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

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

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

    在某处有文档说要运行 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned,我后来找到了,但如果知道这是一个要求就好了。

    【讨论】:

    • 最佳实践是始终通过python -m pip 运行 pip 以保证它是针对您期望的解释器运行的。有助于避免 pip 绑定到您不期望的 Python 安装/解释器。
    【解决方案4】:

    本地有多个python环境吗? 也许试试:

    pip3.7 install requests
    

    【讨论】:

      【解决方案5】:

      在 Windows 10 下,2 种方式适合我:

      1. 在终端中运行:ctrl + F5

      2. 在设置 json 中添加以下内容: "code-runner.executorMap": {

        "python": "$pythonPath -u $fullFileName"

        }

      【讨论】:

        猜你喜欢
        • 2017-12-08
        • 2020-10-03
        • 1970-01-01
        • 1970-01-01
        • 2022-07-07
        • 2022-01-03
        • 1970-01-01
        • 2020-07-17
        相关资源
        最近更新 更多