如何让我的vscode终端使用我的venv for python而不是系统版本?

问题描述 投票:0回答:1

我使用python -m venv venv建立了一个venv,它被vscode识别为有效的解释器,并使用code-runner vscode扩展按预期运行我的代码。但vscode集成的bash终端只使用python的系统版本,即使在运行source /Fake/path/to/env/bin/activate之后。终端在输入提示符上显示(env),但通过os.path.dirname(sys.executable)检查版本显示python的版本是我系统路径中的版本而不是venv中的版本。所以我正在安装的软件包正在安装到系统python而不是venv。

这是vscode中的终端而不是venv本身的问题,因为当我在本机终端(非集成)中执行上述步骤时,我获得了到venv python的正确路径。

我已经尝试将vscode中的python.venvPath变量设置为${workspaceFolder}/envfake/path/to/env,但都不起作用。我认为可以在terminal.integrated.shellArgs.macos设置下设置bash shell参数,但是无法解决如何让它在启动时运行正确的激活脚本。作为参考,我当前的vscode设置如下:

"settings": {
    "code-runner.fileDirectoryAsCwd": true;
    "code-runner.executorMap": {
        "python": "env/bin/python3",
    },
    "python.venvPath": "${workspaceFolder}/env",
    "terminal.integrated.cwd": "${workspaceFolder}",
    },
}

基本上,我期望集成终端激活venv activate bash脚本并临时替换路径以获取我的venv python作为默认值。然后我就可以使用pip3将相关的软件包安装到venv而不是系统python。但是,尽管在输入之前提示显示(env),但实际行为是它在发出命令时指向错误的python版本,例如python3pip3

任何建议都会很棒!

python macos visual-studio-code vscode-settings python-venv
1个回答
0
投票

您可以尝试设置默认解释器。在VSCode屏幕的最左下方,您可以单击解释器名称并选择所需的解释器名称。见下图。红色椭圆表示单击的位置。

enter image description here

单击指示的空间后,将打开一个菜单,您可以在其中选择python解释器。见下图。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.