【发布时间】:2015-05-01 14:13:23
【问题描述】:
我打算为 Python 3.4 安装 Anaconda3。由于默认情况下,Mac OS X 使用 Python2,安装 Anaconda3 会改变系统默认的 Python 版本吗?我不希望这种情况发生,因为 Python3 会破坏向后兼容性。如果它确实改变了默认的 Python 版本,我该如何避免呢?
【问题讨论】:
标签: python python-2.7 python-3.x anaconda
我打算为 Python 3.4 安装 Anaconda3。由于默认情况下,Mac OS X 使用 Python2,安装 Anaconda3 会改变系统默认的 Python 版本吗?我不希望这种情况发生,因为 Python3 会破坏向后兼容性。如果它确实改变了默认的 Python 版本,我该如何避免呢?
【问题讨论】:
标签: python python-2.7 python-3.x anaconda
Apple 有一个用于管理多个软件版本以及在它们之间切换的内置系统。但是您甚至不必担心这一点,因为 Anaconda 安装是独立的:所有内容都位于顶级 Anaconda 安装目录下(可能是 /Applications/anaconda)。此目录之外的唯一影响是在安装期间,Anaconda 将提供修改您的.bashrc 中的PATH 变量。如果您同意,它将在您的 .bashrc 末尾添加 一个 行,如下所示:
PATH="/Applications/anaconda/bin:$PATH"
如您所见,Anaconda 将自己首先置于系统路径中。这意味着在 shell 提示符下键入 python 将启动 python 3,这可能不是您想要的。我像这样运行 Anaconda 3.4 并且我的系统完全没有问题,但我确实需要修改我自己的可执行 python2 脚本,这些脚本像这样启动 python:
#!/usr/bin/env python
这是在任何地方查找 python 的好方法,但在这种情况下,它会找到 python 3——哎呀!将上述更改为#!/usr/bin/python 或#!/usr/bin/env python2 可确保它们继续正常工作。根据我的经验,任何系统自己的脚本都不需要这样做;一切都已准备就绪,可以找到合适的 python。
备选方案1:您可以拒绝PATH修改,并通过启动器使用Anaconda。在这种情况下,您的执行环境的其余部分没有变化。启动器将在 anaconda 环境激活的情况下启动一个特殊的 bash 提示符,但在普通 shell 中执行完全不受影响。如果您将继续在 python 2 中进行大量编程,那么这可能适合您。
备选方案 2: 影响最小的备选方案是将 anaconda 目录 last 放在您的路径中:
PATH="$PATH:/Applications/anaconda/bin"
这确保了非 anaconda 二进制文件优先于 anaconda,因此 python 将从旧的 /usr/bin/python 开始(即 python 2)。您可以通过键入python3、idle3 等来启动 anaconda 的变体。我在安装 anaconda 之前没有 IPython,因此键入 ipython 可以找到 anaconda 版本。
【讨论】:
不,不会,您可以安装多个 python,一旦您不删除系统 python 或手动更改默认设置,您就可以了。
【讨论】: