首先,/usr/local/bin/python 不是 Apple 提供的 Python;总是在 /usr/bin/python 中。
其次,/Library/Python/X.Y 除了站点包之外应该包含任何内容。特别是,您可以在此处放置希望由系统上的所有 PythonX.Y 框架构建共享的包。 (还有 /usr/local/lib/pythonX.Y,它也有一个站点包,用于您希望由所有构建、框架和非框架共享的包。)
Apple 提供的实际 Python 本身位于 /System/Library/Frameworks/Python.framework。
大多数第三方框架构建位于 /Library/Frameworks/Python.framework 中。但是,Homebrew、MacPorts 和 Fink 都安装到不同的位置。例如,Homebrew 将安装到 `/usr/local/Cellar/python/X.Y.Z/Frameworks/Python.framework。
非框架构建会进入 /usr/local/share/pythonX.Y 之类的地方——尽管 Homebrew、MacPorts 和 Fink 安装在不同的地方。
最后,许多安装会创建符号链接(或者,有时是包装脚本)到更典型的地方。特别是,/usr/local/bin/python 很可能是相应 Python.framework 中的 Versions/X.Y/bin/python 的符号链接,如上所述。
如果这对你来说太混乱了,你甚至无法理解,最简单的方法是卸载你安装的额外 Python2.7 和just use Apple's。有些人肯定有充分的理由拥有另一个 Python 2.7(上面链接的博客文章显示了其中的一些),但如果你没有这样的理由,为什么要让事情变得更难你自己?
由于您使用 Homebrew,您甚至可以非破坏性地测试将其移开是否会导致任何问题:brew unlink python 将从您的正常 PATH 中删除 Homebrew Python 的所有痕迹,但保留实际文件在后面。然后,如果你想要它回来,只需brew link python;如果没有它你会更开心,brew uninstall python。
值得注意的是,使用virtualenv 可以更轻松、更干净地解决许多认为需要多个 PythonX.Y 安装的常见原因。
如果您使用的是 MacPorts 或 Fink,它们的设计目的是尽量避开标准系统位置。因此,所有内容都将安装在您的 MacPorts/Fink 根目录下,默认分别为 /opt/local 或 /sw。 (我假设/opt/local。)这意味着框架构建将在/opt/local/Library/Frameworks 之类的地方进行,并带有指向/opt/local/bin 和/opt/local/lib 的符号链接等。站点包将位于/opt/local/Library/Python/X.Y 和/或/opt/local/lib/pythonX.Y。
所以,不可能与任何其他 Python 安装发生任何冲突……当然,除了 /opt/local/bin 和 /usr/local/bin 可能都在你的 PATH 上,pip 仍然有可能意味着 /usr/local/bin/pip 从Apple 或 Python.org 安装,而 ipython 表示来自 MacPorts 的 /opt/local/bin/ipython...