我怎样才能让我的vscode终端将venv用于python,而不是系统版本?

时间:2019-04-09 20:35:02

标签: python macos visual-studio-code vscode-settings python-venv

我已经使用python -m venv venv设置了venv,vscode将其识别为有效的解释器,并使用代码运行程序vscode扩展名按预期运行我的代码。但是,即使在运行source /Fake/path/to/env/bin/activate之后,vscode集成的bash终端也仅使用python的系统版本。终端在输入提示上显示(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

任何建议都会很棒!

4 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,尝试了各种各样的方法,但这最终奏效了。
1. python -m venv myvenv
2.打开命令面板,然后选择解释器myenv
3. CTRL + SHIFT +`在myenv中打开终端
然后我就能看到预期的...(myenv)C:\ Git \ pyPilot>

答案 1 :(得分:0)

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

enter image description here

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

enter image description here

答案 2 :(得分:0)

对于在大学项目中工作的VSCode使用Python,我是一个新手。我在集成终端中遇到了与Python版本相同的问题。我不确定它是否会影响任何东西或以后破坏其他任何东西,但是现在……我做了以下工作,两者都将Python版本从2(系统一)更改为3(Anaconda安装)。

第二次尝试:更改路径以首先拥有Anaconda。需要清理...但是基础工作正常。

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

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

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

Python 2.7.10

(基本)MacBook-Pro-2:env myuserdir $ PATH =“ / anaconda3 / bin:$ PATH”

(基本)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 < / p>

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

Python 3.7.1

第一次尝试: VSCode终端中的/ env / bin / activate源代码,并且更改了Python版本。

在VSCode中打开一个新的集成终端:Terminal \ New Terminal:

(基本)MacBook-Pro-2:env myuserdir $源/ anaconda3 / bin / activate

(基本)MacBook-Pro-2:env myuserdir $ conda激活基本

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

(基本)MacBook-Pro-2:env myuserdir $哪个python

/ usr / bin / python

(基本)MacBook-Pro-2:env myuserdir $ pwd

/ Users / myuserdir / env / env

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

(基本)MacBook-Pro-2:env myuserdir $ ls

bin env include lib pyvenv.cfg

(基本)MacBook-Pro-2:env myuserdir $源bin /激活

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

/ Users / myuserdir / env / bin / python

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

Python 3.7.1

答案 3 :(得分:-2)

cd ./myenv/Scripts /

激活

为我工作