![](/img/trans.png)
[英]How can I make Python3's venv use the same version of pip3 as my system's one?
[英]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}/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 版本。
任何建议都会很棒!
我遇到了同样的问题,尝试了各种方法,但这最终奏效了。
1. python -m venv myvenv
2. 打开命令面板并选择解释器 myenv
3. CTRL + SHIFT + ` 在 myenv 中打开终端
然后我能够看到预期的... (myenv) C:\\Git\\pyPilot>
我对在 VSCode 中使用 Python 非常陌生,正在从事一个大学项目。 我在集成终端中的 Python 版本中遇到了同样的问题。 我不确定它以后是否会影响任何东西或破坏其他任何东西,但现在......我做了以下工作,两者都工作在 Python 的版本从 2(系统一)更改为 3(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.