python - 如何在终端中将特定的 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
)
解决方案
首先,删除别名命令,它只会在您忘记创建别名时给您带来问题。然后,添加 conda 配置选项,使基础环境默认不激活。在您的终端中,键入:
conda config --set auto_activate_base false
这应该将系统 Python 恢复为在您的路径上找到的第一个。现在,当您想使用 conda 环境时,只需键入
conda activate env-name
并且您应该可以访问该环境的 Python。完成后,键入
conda deactivate
会让你回到原来的状态。如果您激活了多个环境,您可能需要运行conda deactivate
多次。
推荐阅读
- java - ESAPI 编码在 UI 上给出不同的输出
- sql - 用字符格式化电话号码
- sql - 蜂巢中两条记录之间的差异
- php - 如何在 php 电子邮件中发送梵文印地语文本?
- ubuntu - 如何在我的服务器中每 1 小时运行一次此代码
- javascript - 从具有 src 的 phonegap 应用程序中的视频标签下载视频
- java - 如何使用 Spring 加载属性文件?
- elixir - 我可以在终端中使用 `iex` 运行,但它在我的伞形项目中不起作用
- javascript - 将数据保存到状态数组中 - 反应 js
- javascript - 如何在javascript中将cookie更改为会话