首页 > 解决方案 > VS 代码运行器在全局环境中执行,尽管设置为使用虚拟环境

问题描述

我设置了一个项目目录,其中包含一个导入请求模块的文件。然后使用 pipenv 创建了一个虚拟环境并安装了请求模块。在终端窗口中,我激活了虚拟环境并运行了文件。

在 VS Code 编辑器中,我选择了环境的解释器(使用正确的路径)并使用++ALT运行代码。它返回:CTRLN

没有名为“请求”的模块。

为了检查发生了什么,我使用import sysand创建了一个文件print(sys.version, sys.executable)。显然,Python 的全球版本已经运行。我做错了什么?

这是该项目的 setting.json 文件:

{
    "python.pythonPath": "C:\\Users\\Periklis\\.virtualenvs\\Mosh_PyYelp-CK8YJ9nr\\Scripts\\python.exe"
}

标签: python-3.xvisual-studio-codevirtualenv

解决方案


我通过以下方式解决了我的问题:

  • 在全局用户文件settings.json 中,我手动定义了虚拟环境中 python 的路径。就我而言

    { "python.venvPath": "C:\Users\Periklis\.virtualenvs" }

    这确保了可以从命令托盘“Python:选择解释器”中选择适当的解释器。

  • 选择解释器后,所选虚拟环境的路径将显示在文件settings.json中,该文件位于项目文件夹的 .vscode 子文件夹中。就我而言

    {"python.pythonPath": "C:\Users\Periklis\.virtualenvs\Mosh_PyYelp-CK8YJ9nr\Scripts\python.exe"}

  • 为了确保在通过编辑器
    (Alt + Ctrl +N)运行 python 文件时使用适当的解释器,我手动
    将解释器的完整路径插入到文件 设置中的 code-runner.executorMap 部分。通过将路径复制到虚拟环境中的 python,在子文件夹 .vscode 中创建json 。就我而言:

    { ... "code-runner.executorMap":{...., "python": "C:\Users\Periklis\.virtualenvs\Mosh_PyYelp- CK8YJ9nr\Scripts\python.exe", ...} }

现在项目文件夹中的每个 python 文件都在虚拟环境中执行。由于我是 VS Code 和一般编程的新手,我不确定这是否是最好的方法,但它确实有效。我很想听听其他选择。


推荐阅读