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为例)
- 您已经安装了例如你机器上的 Miniconda
- 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 <<<
- 现在每次你 运行 一个终端(PyChrarm-built-in 终端或系统终端)你都会得到
(conda)
作为 Bash 来源 ~/.bashrc
开始新的 shell 会话
- 在终端中激活 conda 后,您可以 运行 例如
conda
命令添加到 PATH
环境变量
$ which conda
/home/parallels/miniconda3/bin/conda
终端中的 python
命令将从 Miniconda 调用 Python,因为 PATH
环境变量再次被修补
$ which python
/home/parallels/miniconda3/bin/python
- 现在让我们在 PyCharm 中打开一些项目,并将虚拟环境设置为项目解释器
- 并打开一个built-inPyCharm终端
- Bash 来源
~/.bashrc
,激活 conda,你得到 (conda)
- PyCharm sources
activate
虚拟环境的脚本,你得到 (venv) (conda)
- 由于 venv 最后被激活,它在某些地方覆盖了 conda 激活,例如
$ which python
/home/parallels/.virtualenvs/venv/bin/python
问题是 - 你应该关心吗?
可能不会,除了视觉上的混乱,对你影响不大。 conda 激活后留下了一些环境变量,这些变量没有被 venv 激活覆盖,但它们不太可能影响你。
如果 (base)
太困扰您,您可以从 ~/.bashrc
中删除 conda 激活逻辑。您始终可以手动将其重新激活。我相信只有在终端中大量使用 conda 并希望手动节省时间 re-activating 时才保留激活逻辑才有意义。
我对建立虚拟环境后Pycharm里面的终端很好奇。截图如下。前面有 (venv) 和 (base) 是正常的吗?谢谢
enter image description here
我敢打赌 (venv)
来自 PyCharm auto-activating 您配置为项目解释器的虚拟环境并且 (base)
可能是 conda
基础环境在 ~/.bashrc
(或类似的地方)激活。我想在 PyCharm 之外的终端中你只有 (base)
.
详情
让我更详细地解释一下发生了什么(以Ubuntu和Bash为例)
- 您已经安装了例如你机器上的 Miniconda
- 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 <<<
- 现在每次你 运行 一个终端(PyChrarm-built-in 终端或系统终端)你都会得到
(conda)
作为 Bash 来源~/.bashrc
开始新的 shell 会话 - 在终端中激活 conda 后,您可以 运行 例如
conda
命令添加到PATH
环境变量
$ which conda
/home/parallels/miniconda3/bin/conda
-
终端中的
python
命令将从 Miniconda 调用 Python,因为PATH
环境变量再次被修补
$ which python
/home/parallels/miniconda3/bin/python
- 现在让我们在 PyCharm 中打开一些项目,并将虚拟环境设置为项目解释器
- 并打开一个built-inPyCharm终端
- Bash 来源
~/.bashrc
,激活 conda,你得到(conda)
- PyCharm sources
activate
虚拟环境的脚本,你得到(venv) (conda)
- 由于 venv 最后被激活,它在某些地方覆盖了 conda 激活,例如
$ which python
/home/parallels/.virtualenvs/venv/bin/python
问题是 - 你应该关心吗?
可能不会,除了视觉上的混乱,对你影响不大。 conda 激活后留下了一些环境变量,这些变量没有被 venv 激活覆盖,但它们不太可能影响你。
如果 (base)
太困扰您,您可以从 ~/.bashrc
中删除 conda 激活逻辑。您始终可以手动将其重新激活。我相信只有在终端中大量使用 conda 并希望手动节省时间 re-activating 时才保留激活逻辑才有意义。