无法在工作区外的 VSCode 中使用 conda python 版本

Posted

技术标签:

【中文标题】无法在工作区外的 VSCode 中使用 conda python 版本【英文标题】:Not able to use conda python version in VSCode outside of workspace 【发布时间】:2021-12-10 11:38:45 【问题描述】:

在 VSCode 的工作区中的脚本之外执行 python 命令时,我无法使用基本 conda python 版本。尽管我在用户设置中指定了 python.pythonPath,但还是会这样做。问题只发生在VSCode中

首先,我使用的是装有 OS Big Sur(版本 11.6)的 Mac。我在以下位置安装了 miniconda: /Users/用户名/opt/miniconda3

.zshrc 中有 conda 初始化脚本

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/Users/matthiaslenfers/opt/miniconda3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/Users/matthiaslenfers/opt/miniconda3/etc/profile.d/conda.sh" ]; then
        . "/Users/matthiaslenfers/opt/miniconda3/etc/profile.d/conda.sh"
    else
        export PATH="/Users/matthiaslenfers/opt/miniconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

默认情况下打开终端时,我处于 ​​conda 基础环境中。

(base) username@Matthiass-MBP ~ % which python
/Users/username/opt/miniconda3/bin/python

正如您在终端中看到的 VScode 之外的那样,我在使用 conda 基础 python 版本时没有任何问题。

在 VSCode 内部,我打开了一个工作区并将设置更改为特定的 conda python 版本(我也更改了一般用户设置)

User Setting
"python.pythonPath": "/Users/matthiaslenfers/opt/miniconda3/bin/python"

Workspace Setting
"python.pythonPath": "/Users/matthiaslenfers/opt/miniconda3/envs/example_project/bin/python"

从工作区 example_project 中的文件 example.py 执行一行(将 pandas 导入为 pd)时(通过突出显示它,然后按 ⇧ + Enter)我得到以下结果:

source activate example_project
/Users/username/opt/miniconda3/envs/example_project/bin/python
import pandas as pd
(base) username@Matthiass-MBP example_project % source activate example_project
(example_project) username@Matthiass-MBP example_project % /Users/username/opt/miniconda3/envs/example_project/bin/python
Python 3.7.11 (default, Jul 27 2021, 07:03:16)
[Clang 10.0.0 ] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas as pd

所以我的conda环境example_project的正确python版本就自动使用了

另一方面,当我在 VSCode 中打开一个新终端并检查 python 版本和位置时,我得到以下结果,活动 python 版本是 /usr/local/bin/python

(base) username@Matthiass-MBP example_project % which python
python --version
Python 2.7.15

(base) username@Matthiass-MBP example_project % which python
/usr/local/bin/python

为什么 /Users/username/opt/miniconda3/bin 中的不是 Python 版本?表明 (base) 在 VSCode 终端中,但是执行了另一个 python 版本

我很困惑!

【问题讨论】:

【参考方案1】:

您选择的 python 解释器的值是多少。您可以从 VSCode 的左下角获取它。

选择python解释器后,在VSCode中新建终端(Ctrl+Shift+`的快捷键),python扩展会帮你自动激活环境如下:

您可以查看official docs。解释清楚了。

【讨论】:

以上是关于无法在工作区外的 VSCode 中使用 conda python 版本的主要内容,如果未能解决你的问题,请参考以下文章

VsCode问题:CommandNotFoundError: Your shell has not been properly configured to use ‘conda activate‘.C

PATH 未从 VSCode 终端中的 conda activate 正确更新

vscode常用工具

vscode常用工具

无法在Snakemake规则中使用conda环境导入python模块

为啥 conda 无法在 Windows 上正确安装 tensorflow gpu?