4

我刚刚使用 Homebrew 安装了 Python。我使用了命令brew install python(在安装 XQuartz 之后,这是一个先决条件)。

这个页面 - https://github.com/mxcl/homebrew/wiki/Homebrew-and-Python - 告诉我以下内容:

问题

假设一个标准的 Homebrew 安装,前缀是 /usr/local,酒窖是/usr/local/Cellar.

Homebrew 使用标准的./configure --prefix=#{prefix}.

这设置:

  • “站点包”文件夹为 /usr/local/Cellar/python/2.7.3/lib/python2.7/site-packages.
  • “安装脚本”文件夹为/usr/local/Cellar/python/2.7.3/bin.

如果 site-packages 存在于 Python 的 Cellar 中,那么用户安装的包将在 Python 更新之间被擦除。install-scripts 也一样,另外一个问题是用户必须手动将 Python 的地窖 bin 文件夹添加到路径中。

解决方案

Homebrew 在安装时执行两个操作来解决这些问题。

  • /usr/local/lib/python2.7/site-packages首先,删除 Cellar site-packages 文件夹,并在前缀中创建符号链接 。这将允许站点包在 Python 更新之间持续存在,因为 Homebrew 对某些使用 lib 作为用户可安装库的语言进行了特殊处理。

  • 其次,distutils.cfg编写一个文件以将 install-scripts 文件夹设置为/usr/local/share/python. 用户可以添加 /usr/local/share/pythonPATH以获取已安装的脚本。

我不明白的是“删除了地窖站点包文件夹,并 /usr/local/lib/python2.7/site-packages创建了指向前缀中的符号链接”的行。当我查看“前缀”时——我理解为“/usr/local”——我没有看到符号链接。这个符号链接在哪里被引用?

我感到困惑的原因之一是,当我运行时,pip install virtualenvwrapper我得到的输出告诉我:“要求已经满足:/Library/Python/2.7/site-packages 中的 virtualenv-clone(来自 virtualenvwrapper)”。我不明白这个/Library/Python/2.7/site-packages目录是从哪里来的,为什么会被引用。

话虽如此,pip install virtualenvwrapper似乎完成没有问题并且不需要 sudo,我认为这应该是使用 Homebrew 安装的优势之一。的整个输出pip install virtualenvwrapper是:

下载/解压 virtualenvwrapper
  为包 virtualenvwrapper 运行 setup.py egg_info

下载/解压 virtualenv(来自 virtualenvwrapper)
  下载 virtualenv-1.8.2.tar.gz (2.2MB):下载了 2.2MB
  将下载存储在 ./Library/Caches/pip-downloads/http%3A%2F%2Fpypi.python.org%2Fpackages%2Fsource%2Fv%2Fvirtualenv%2Fvirtualenv-1.8.2.tar.gz 的缓存中
  为包 virtualenv 运行 setup.py egg_info

    警告:在目录“docs/_templates”下找不到与“*”匹配的先前包含的文件
    警告:在目录“docs/_build”下找不到与“*”匹配的先前包含的文件
已满足要求(使用 --upgrade 升级):/Library/Python/2.7/site-packages 中的 virtualenv-clone(来自 virtualenvwrapper)
已满足要求(使用 --upgrade 升级):/Library/Python/2.7/site-packages 中的 stevedore(来自 virtualenvwrapper)
已满足要求(使用 --upgrade 升级):分发在 /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg (来自 stevedore->virtualenvwrapper)
安装收集的包:virtualenvwrapper、virtualenv
  为 virtualenvwrapper 运行 setup.py install

    跳过/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenvwrapper/__init__.py(命名空间包)的安装
    安装 /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenvwrapper-3.6-py2.7-nspkg.pth
    将 /usr/local/share/python/virtualenvwrapper.sh 的模式更改为 755
    将 /usr/local/share/python/virtualenvwrapper_lazy.sh 的模式更改为 755
  为 virtualenv 运行 setup.py install

    警告:在目录“docs/_templates”下找不到与“*”匹配的先前包含的文件
    警告:在目录“docs/_build”下找不到与“*”匹配的先前包含的文件
    将 virtualenv 脚本安装到 /usr/local/share/python
    将 virtualenv-2.7 脚本安装到 /usr/local/share/python
成功安装 virtualenvwrapper virtualenv
打扫干净...
4

1 回答 1

0

从更新的文档中:

对于 Python 2.7.x,您可以在 /usr/local/lib/python2.7/site-packages 中找到它。

Python 2.7 还在以下位置搜索模块:

/Library/Python/2.7/site-packages

~/Library/Python/2.7/lib/python/site-packages

因此,您可能会在 /Library/Python2:7/site-packages 中找到以前安装的包的回声

Homebrew 最近发布了 1.0,自从您提出这个问题以来,发生了很多变化。

于 2016-10-09T06:52:31.233 回答