繁体   English   中英

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

[英]How can I get my vscode terminal to use my venv for python rather than the system version?

我已经使用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}/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)提示,但实际行为是它在发出命令(例如python3pip3时指向错误的 python 版本。

任何建议都会很棒!

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

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

在此处输入图片说明

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

在此处输入图片说明

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

第二次尝试:更改 PATH 以首先使用 Anaconda。 需要清理......但基本工作。

(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

这是 2021 年的问题,但如果您(再次)选择 VS Code 左下角的解释器,然后打开一个新终端 (Ctrl+Shift+`),您将在终端提示中看到venv名称。

关闭和打开 VS Code 后, venv仍然处于活动状态。 也许它因某种原因被停用。

终端使用Activate.ps1 ,而不是activate.bat

当前用户必须能够执行 PoserShell 脚本。

cd ./myenv/脚本/

启用

为我工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM