Pycharm 在终端中显示 venv 和 base

Pycharm showing venv and base in the terminal

我对建立虚拟环境后Pycharm里面的终端很好奇。截图如下。前面有 (venv) 和 (base) 是正常的吗?谢谢

enter image description here

我敢打赌 (venv) 来自 PyCharm auto-activating 您配置为项目解释器的虚拟环境并且 (base) 可能是 conda 基础环境在 ~/.bashrc(或类似的地方)激活。我想在 PyCharm 之外的终端中你只有 (base).

详情

让我更详细地解释一下发生了什么(以Ubuntu和Bash为例)

  1. 您已经安装了例如你机器上的 Miniconda
  2. Conda 安装程序已修补 ~/.bashrc,例如cat ~/.bashrc
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/parallels/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/home/parallels/miniconda3/etc/profile.d/conda.sh" ]; then
        . "/home/parallels/miniconda3/etc/profile.d/conda.sh"
    else
        export PATH="/home/parallels/miniconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<
  1. 现在每次你 运行 一个终端(PyChrarm-built-in 终端或系统终端)你都会得到 (conda) 作为 Bash 来源 ~/.bashrc开始新的 shell 会话
  2. 在终端中激活 conda 后,您可以 运行 例如conda 命令添加到 PATH 环境变量
$ which conda
/home/parallels/miniconda3/bin/conda
    终端中的
  1. python 命令将从 Miniconda 调用 Python,因为 PATH 环境变量再次被修补
$ which python
/home/parallels/miniconda3/bin/python
  1. 现在让我们在 PyCharm 中打开一些项目,并将虚拟环境设置为项目解释器
  2. 并打开一个built-inPyCharm终端
  3. Bash 来源 ~/.bashrc,激活 conda,你得到 (conda)
  4. PyCharm sources activate 虚拟环境的脚本,你得到 (venv) (conda)
  5. 由于 venv 最后被激活,它在某些地方覆盖了 conda 激活,例如
$ which python
/home/parallels/.virtualenvs/venv/bin/python

问题是 - 你应该关心吗?

可能不会,除了视觉上的混乱,对你影响不大。 conda 激活后留下了一些环境变量,这些变量没有被 venv 激活覆盖,但它们不太可能影响你。

如果 (base) 太困扰您,您可以从 ~/.bashrc 中删除 conda 激活逻辑。您始终可以手动将其重新激活。我相信只有在终端中大量使用 conda 并希望手动节省时间 re-activating 时才保留激活逻辑才有意义。