首页 > 解决方案 > 如何在终端中将特定的 python 版本设置为默认值,但要保留使用另一个(例如 conda)作为包的可能性

问题描述

为了安装外部包,我必须安装conda并激活环境才能使用该外部包。但是,现在 python 的 conda 版本是默认版本:

$ which python
/Users/mymac/miniconda3/bin/python

$ python
Python 3.7.3 (default, Mar 27 2019, 16:54:48) 
[Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on darwin

在我.bash_profile的 2 个版本似乎是共存的:

export PS1="\[\033[36m\]\u\[\033[m\]@\[\033[32m\]\h:\[\033[33;1m\]\w\[\033[m\]\$ "
export CLICOLOR=1
export LSCOLORS=ExFxBxDxCxegedabagacad
alias ls='ls -GFh'

# Homebrew
export PATH=/usr/local/bin:$PATH

# Setting PATH for Python 3.7
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.7/bin:${PATH}"
export PATH

export PATH="$HOME/.cargo/bin:$PATH"

export LC_ALL=en_US.UTF-8

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

然后在我的中添加以下行.bashrc

alias python='/Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7

然后我重试了上一个命令

$ which python
/Users/mymac/miniconda3/bin/python

$ python
Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 16:52:21) 
[Clang 6.0 (clang-600.0.57)] on darwin

版本好像变了,但来源还是一样。

必须执行哪些精确命令才能在终端中将非 conda python 版本作为默认值,但要保持对特定包使用 conda 版本的可能性(通过键入source activate thepackage

标签: pythonbashterminalpathconda

解决方案


首先,删除别名命令,它只会在您忘记创建别名时给您带来问题。然后,添加 conda 配置选项,使基础环境默认不激活。在您的终端中,键入:

conda config --set auto_activate_base false

这应该将系统 Python 恢复为在您的路径上找到的第一个。现在,当您想使用 conda 环境时,只需键入

conda activate env-name

并且您应该可以访问该环境的 Python。完成后,键入

conda deactivate

会让你回到原来的状态。如果您激活了多个环境,您可能需要运行conda deactivate多次。


推荐阅读