【问题标题】:Why doesn't my project's virtual env auto-launch in VS Code?为什么我的项目的虚拟环境不能在 VS Code 中自动启动?
【发布时间】:2021-07-18 19:39:55
【问题描述】:

VS 代码 v1.58.1 Python v3.92

在一个python项目中,我设置了一个虚拟环境。在这个项目文件夹中,我有一个子文件夹.vscode,其中包含一个文件settings.json,其内容如下(指向项目的虚拟环境文件夹):

{
    "python.defaultInterpreterPath": "D:\\Documents\\coding\\pyproj1\\proj_env\\Scripts\\python.exe",
    "python.terminal.activateEnvironment": true
}

当我在 VS Code 中打开这个项目文件夹时,powershell 终端并没有自动启动虚拟环境,并且在 VS Code 的左下角,没有列出了虚拟环境 python 解释器。当我在 VS Code 中运行新终端时,虚拟环境仍未激活。

我在使用 python.pythonPath 时遇到了同样的问题,据我所知,现在已弃用 python.defaultInterpreterPath

如果我在打开项目文件夹后将 VS Code 单独放置几分钟,它有时会选择虚拟环境解释器。但是既然我告诉VS Code它在哪里,为什么它不在文件夹打开时选择它?

我哪里错了?

【问题讨论】:

    标签: python visual-studio-code


    【解决方案1】:

    python.defaultInterpreterPath 设置仅在第一次时有效。

    手动选择python解释器后,VSCode会记住它。当您重新打开 VSCode 时,它​​将选择您上次选择的解释器。并且python.defaultInterpreterPath 设置将不再有任何影响。

    但是你用这个命令重置它:Python:Clear Workspace Interpreter Setting

    更新:

    您可以像这样设置python.defaultInterpreterPath

    "python.defaultInterpreterPath": ".venv\\Scripts\\python.exe"
    

    您的 Python 扩展或缓存似乎有问题。

    你可以试试:

    1. 重新安装 python 扩展。记得删除下面的扩展文件夹:C:\Users\${UserName}\.vscode\extensions

    2. 删除这些位置下的所有文件:

      C:\Users\${UserName}\AppData\Roaming\Code\User\globalStorage C:\Users\${UserName}\AppData\Roaming\Code\User\workspaceStorage

    或者您可以清空以下文件夹:

    C:\Users\${UserName}\AppData\Roaming\Code
    

    但记得把settings.json存放在下面

    C:\Users\${UserName}\AppData\Roaming\Code\User
    

    【讨论】:

    • 感谢您解释 python.defaultInterpreterPath 的工作原理。所以看来我的问题是 VS Code 不记得我上次使用的解释器。每次我打开一个包含虚拟环境的文件夹时,我都必须选择那个 venv python 解释器。
    • 感谢您的更新。如下所述,我最终删除了虚拟环境并重新创建它。现在,当我打开项目文件夹和其中的任何脚本时,VS Code 会按预期运行并自动激活虚拟环境。
    【解决方案2】:

    如前面评论中所述:“看来我的问题是 VS Code 不记得我上次使用的解释器。”

    解决问题的方法是删除虚拟环境并重新创建它。现在,当我打开项目文件夹时,VS Code 会自动激活虚拟环境。

    任何希望这样做的人所涉及的步骤:

    • 激活虚拟环境
    • 创建需求文件:pip freeze > requirements.txt
    • deactivate退出venv
    • rm proj_env 或任何 venv 文件夹的名称
    • 创建虚拟环境,例如,python -m venv proj_env
    • 激活虚拟环境(VS Code 可能会在创建过程中检测到 venv,并询问您是否要激活 venv,继续说是)
    • pip install -r requirements.txt 将需求安装到虚拟环境中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-02
      • 1970-01-01
      • 1970-01-01
      • 2022-11-21
      • 1970-01-01
      • 2019-07-30
      • 1970-01-01
      • 2021-09-28
      相关资源
      最近更新 更多