默认使用Mac Python 2.7和Anaconda Python 3

3 人关注

我想保留Mac Python作为我的主要 "Python"。其原因是Python网站中的建议 here .我还想为我的Python3(Anaconda)添加一个单独的环境。

为了做到这一点,我安装了Anaconda Python,以获得对Conda的访问,然后我使用以下命令为我的Python3制作了一个环境。

conda create -n py36 python=3.6 anaconda

当我安装Anaconda python时,它在我的.bash_profile文件中添加了这个,以获得对所有conda命令的访问。

# added by Anaconda3 4.4.0 installer
# export PATH="/Users/omidb/anaconda/bin:$PATH"

现在我的默认Python是Anaconda python,我不想这样。

我怎样才能将默认的Mac python作为我的主要python,然后当我需要Anaconda时,只需使用source activate py36

5 个评论
PATH 中删除 /Users/omidb/anaconda/bin ,在 /usr/local/bin 中创建 /Users/omidb/anaconda/bin/activate /Users/omidb/anaconda/bin/deactivate 的符号链接。从这里开始,你的默认python将是Mac自带的那个。要使用 anaconda python ,请运行 source activate py36
完全同意@alvits的观点,你不希望你的 conda 环境被添加到你的 PATH 环境变量中。AFAIK,你不需要添加符号链接,不过。
@tdube - 我在相当长的一段时间内处于和OP一样的困境。如果我不创建符号链接,我将不得不输入 activate 的完整路径名。
Omid
@alvits 这可能有用,但不是那么好,因为我必须添加其他东西,如conda和....。
这很好,我的这个设置运行起来没有问题。我甚至有4个不同版本的python环境。我做的唯一符号链接是 activate deactivate conda
python
macos
python-2.7
python-3.x
anaconda
Omid
Omid
发布于 2017-08-15
2 个回答
tdube
tdube
发布于 2021-03-24
已采纳
0 人赞同

UPDATED ANSWER

经过测试,我觉得提供这样一个简单的解决方案是合适的,即使用Mac Python作为默认,只在需要时使用Conda Python。

你需要通过 export 命令将 conda 路径添加/移动到你的 PATH 环境的最后。这应该允许你使用Mac Python作为默认,并且只在调用 source activate py36 后使用Anaconda Python。

export PATH="$PATH:/Users/omidb/anaconda/bin"

Path Resolution

这个解决方案假设你的/usr/bin/(Mac Python所在)已经在你的PATH中。假设该目录在PATH中排在第一位,那么解决顺序应该首先检查该目录。另外,这种设置不需要/usr/local/bin中的符号链接。我不喜欢为那些可以用用户资源(目录)完成的解决方案操纵系统级资源。

Default Python Setup

在把 Anaconda 路径移到PATH环境变量的末尾后,你可以验证which python引用了/usr/bin/python,即 Mac Python 的位置。你将在命令行中默认运行 Mac python

Running Conda Python

如前所述,当你想使用conda的虚拟环境时,你必须调用source activate py36。不需要向/usr/local/bin添加符号链接,因为它们已经可以通过~/anaconda/bin/获得。

此外,source activate py36(或任何其他Anaconda环境),它将为Anaconda添加适当的环境路径python到你的PATH环境变量的开头。(参考路径解析),当在命令行上以python的形式运行时,它将被执行。你可以在运行source activate py36后用which python来验证这一点。conda也会将之前的路径存储为环境变量CONDA_PATH_BACKUP

Deactivating Conda

在运行source deactivate后,原来的路径被恢复了,所以这时你将回到运行Macpython

如果你不创建符号链接,那么你就必须指定 activate 的完整路径。你需要在路径中至少有 activate ,因此建议使用符号链接。
Omid
@tdube 这样一来,默认的Python将是Anaconda而不是Mac的python,因为它将被修改PATH
@Omid - 我也在猜测tdtube运行的是windows。因此,默认的python不是一个问题,因为windows没有任何python。
@alvits 不,我用的是Mac。对于我的设置,我只是不想使用默认的Mac Python。它有点......过时!:)
是的,你用的是Mac。 但你的默认python不再是Mac的python了 .OP想 keep 默认的Python。
Uday Shankar Singh
Uday Shankar Singh
发布于 2021-03-24
0 人赞同

我遇到了同样的问题,这个问题太老了,但我发现最简单的做法是。

1. Let's check if the default python version is pointing to Conda python
which python - If Conda installation updated to your bashrc or zshrc, it will show that path
  • 运行命令。

    conda config --set auto_activate_base false

    它将确保当你启动终端时,Conda不会被激活为基数。

    现在如果你检查python --versionwhich python的话- 它应该指向mac默认的python版本

  • 现在只要你想使用conda,所有conda命令都可以用conda <command>

  •