python - 如何在终端中将特定的 python 版本设置为默认版本,但保留使用另一个包(例如 conda)的可能性

标签 python bash terminal path 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 中,这两个版本似乎共存:

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)

最佳答案

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

conda config --set auto_activate_base false

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

conda activate env-name

并且您应该有权访问该环境的 Python。完成后,输入

conda deactivate

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

关于python - 如何在终端中将特定的 python 版本设置为默认版本,但保留使用另一个包(例如 conda)的可能性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56786519/

相关文章:

linux - 模棱两可的重定向

php - 如何确定 PHP 和 sendmail 是否协同工作?

python - Tensorflow Shape 必须为 1 级,但为 2 级

python - 生成围绕零的二项式分布

python - 插入排序不变断言失败

python - SqlAlchemy:将继承类型从一种转换为另一种

bash - 每天随机运行一次 shell 脚本

bash - 使用 GitHub 时防止将大文本文件添加到提交中

macos - 如何使用 Shift+Arrow 在 iterm 中选择文本?

emacs - M-x shell 中 vt100/ansi-color 转义的非临时方式