将 Homebrew 的 Python 安装到已安装 Apple Python 的系统上后,列出的最后一个条目sys.path
使用 Homebrew 的 Python 是
/Library/Python/2.7/site-packages
/usr/local/lib/python2.7/site-package
这与我期望的顺序相反。不是应该先搜索 Homebrew 的包吗? (实际上,不应该吗 be the only搜索过的地方?)就是这样文档中隐含的。它在哪里设置以及我如何(或应该)更改它?
或者这就是 Breed Python 应该工作的方式吗?它的设计目的是防止重复包并假设系统中的任何包site-packages
除非明确卸载并随后安装(到 Brew 中),否则将保留在那里;除了pip
and setuptools
which are重复(并放在 Brewed Python 路径的第一位)。
这就是预期的行为。其背后的基本原理是,尽管您现在使用的是新的自制 Python,但您可以继续使用旧安装的模块。
现在这有一些缺点,例如像 numpy 这样的一些库不能跨不同的 Python 版本工作,所以如果你安装了 numpy 它将从旧系统导入site-packages
并且不会起作用。
至少有两种方法可以改变sys.path
:
Use a .pth
file:
Python 将从一些内置位置(例如:~/Library/Python/2.7/lib/python/site-packages/homebrew.pth)中选择它。这附加到sys.path
这并不理想,但优点是它不会被 Python 3 选择。目前它是推荐方法。您可以通过以下方式实现此目的:
echo "$(brew --prefix)/lib/python2.7/site-packages" > ~/Library/Python/2.7/lib/python/site-packages/homebrew.pth
Set PYTHONPATH
:
这被前置到sys.path
,它的缺点是对所有 python 版本都是全局的,因此如果您要使用不同的 python 版本,则不建议使用它。您可以通过添加到您的.bash_profile
:
export PYTHONPATH=`brew --prefix`/lib/python2.7/site-packages:$PYTHONPATH
我个人将选项 2 与 homebrew-python 一起使用(我现在使用并推荐 Anaconda)。我的原因是当时我并不关心系统的Python或Python 3。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)