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

如何让我的vscode终端使用我的venv for python而不是系统版本?,python,macos,visual-studio-code,vscode-settings,python-venv,Python,Macos,Visual Studio Code,Vscode Settings,Python Venv,我已经使用python-m venv venv设置了一个venv,它被vscode识别为有效的解释器,并使用代码运行器vscode扩展按预期运行我的代码。但是vscode集成的bash终端只使用系统版本的python,即使在运行source/Fake/path/to/env/bin/activate之后也是如此。终端在输入提示符上显示(env),但通过os.path.dirname(sys.executable)检查版本会显示python的版本是我的系统路径中的版本,而不是venv中的版本。因此

我已经使用
python-m venv venv
设置了一个venv,它被vscode识别为有效的解释器,并使用代码运行器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}/env
fake/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)
,但实际行为是,在发出命令(例如
python3
pip3
)时,它指向了错误的python版本


任何建议都很好

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

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


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

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


我对在VSCode中使用Python非常陌生,正在从事一个大学项目。集成终端中的Python版本也存在同样的问题。我不确定它以后是否会影响任何东西或破坏任何东西,但现在。。。我做了以下两件事,都是因为Python的版本从2(system one)更改为3(Anaconda安装)

第二次尝试:改变路径,让蟒蛇先行。需要清理一下。。。但基本的工作。 第一次尝试:
我对在VSCode中使用Python非常陌生,正在从事一个大学项目。集成终端中的Python版本也存在同样的问题。我不确定它以后是否会影响任何东西或破坏任何东西,但现在。。。我做了以下两件事,都是因为Python的版本从2(system one)更改为3(Anaconda安装)

第二次尝试:改变路径,让蟒蛇先行。需要清理一下。。。但基本的工作。 第一次尝试:
我也遇到过同样的问题,尝试过各种方法,但最终都成功了。
1.python-m-venv-myvenv
2.打开命令调色板并选择解释器myenv
3.CTRL+SHIFT+`在myenv中打开终端

然后我就可以看到预期的。。。(myenv)C:\Git\pyPilot>

我也有同样的问题,尝试了各种方法,但最终都成功了。
1.python-m-venv-myvenv
2.打开命令调色板并选择解释器myenv
3.CTRL+SHIFT+`在myenv中打开终端
然后我就可以看到预期的。。。(myenv)C:\Git\pyPilot>

cd./myenv/Scripts/

激活

为我工作

cd./myenv/Scripts/

激活


为我工作

谢谢-虽然解释器的工作方式与我预期的一样,但问题在于终端本身-vscode中除终端以外的所有东西都在venv中正常工作,但终端没有与venv对齐。有没有一种方法可以使用shellArgs或类似工具启动venv来自动识别venv的正确python路径?同样的问题是,设置python解释器不会改变终端中使用的python。设置一个新的env也不会改变temrinalThanks使用的python——虽然解释器的工作方式与我预期的一样,但问题在于终端本身——vscode中除了终端之外的所有东西在venv中都会正常工作,但终端没有与venv对齐。有没有一种方法可以使用shellArgs或类似工具启动venv来自动识别venv的正确python路径?同样的问题是,设置python解释器不会改变终端中使用的python。设置新的env也不会改变temrinal使用的python
(base) MacBook-Pro-2:env myuserdir$ echo $PATH

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/myuserdir/env/bin:/anaconda3/bin:/anaconda3/condabin

(base) MacBook-Pro-2:env myuserdir$ python --version

Python 2.7.10

(base) MacBook-Pro-2:env myuserdir$ PATH="/anaconda3/bin:$PATH"

(base) MacBook-Pro-2:env myuserdir$ echo $PATH

/anaconda3/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/myuserdir/env/bin:/anaconda3/bin:/anaconda3/condabin

(base) MacBook-Pro-2:env myuserdir$ python --version

Python 3.7.1
source /env/bin/activate within the VSCode Terminal and that changed the Python version.

Open a new integrated Terminal in VSCode: Terminal\New Terminal:

(base) MacBook-Pro-2:env myuserdir$ source /anaconda3/bin/activate

(base) MacBook-Pro-2:env myuserdir$ conda activate base

(base) MacBook-Pro-2:env myuserdir$ python --version
Python 2.7.10

(base) MacBook-Pro-2:env myuserdir$ which python

/usr/bin/python

(base) MacBook-Pro-2:env myuserdir$ pwd

/Users/myuserdir/env/env

(base) MacBook-Pro-2:env myuserdir$ cd ..

(base) MacBook-Pro-2:env myuserdir$ ls

bin             env             include         lib             pyvenv.cfg

(base) MacBook-Pro-2:env myuserdir$ source bin/activate

(env) (base)MacBook-Pro-2:env myuserdir$ which python

/Users/myuserdir/env/bin/python

(env) (base) MacBook-Pro-2:env myuserdir$ python --version

Python 3.7.1