Mac OS X 上的 Python 安装问题

Mac OS X 上的 Python 安装问题

我一直在使用 OS X Lion (2.7.2) 附带的标准 python,但我想构建一个 UCS-4 版本来更好地处理 4 字节 unicode 字符。

我已经安装了 pip 和 pytz、virtualenv 和 virtualenvwrapper 等包,这些包安装在 中/Library/Python/2.7/site-packages。我的$PATH/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

为了在机器上构建新版本的 Python(在任何项目特定的虚拟环境之外,稍后会介绍),我按照本文并设法在 中构建它/usr/local/bin。问题是,当我启动一个新的 bash 窗口时,我收到以下 virtualenvwrapper 错误:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named virtualenvwrapper.hook_loader virtualenvwrapper.sh: There was a problem running the initialization hooks. 

If Python could not import the module virtualenvwrapper.hook_loader, check that virtualenv has been installed for VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python and that PATH is set properly.

说明说要移至文件/usr/local/bin顶部/etc/paths,从那时起我注意到了一些奇怪的问题。我将 pip 安装到 中/usr/local/bin,现在我假设因为我在 中工作/usr/local/bin,并且新安装的 python 站点包现在位于 中/usr/local/lib/python2.7/site-packages,当我执行 时pip freeze,它应该是空的,因为那里还没有安装任何东西。但是,pip freeze仍然报告安装在旧 (OS X) 站点包文件夹中的东西。以下是构建后的一些信息:

$ which python
/usr/local/bin/python
$ which pip
/usr/local/bin/pip
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

当我使用 pip 卸载 python 包时,它会按预期将其从旧的 site-packages 文件夹中删除。当我再次安装它时,/usr/local/lib/python2.7/site-packages它不是将其安装在 中,而是安装在 中/Library/Python/2.7/site-packages(通过尝试再次安装并收到 来验证Requirement already satisfied (use --upgrade to upgrade): pytz in /Library/Python/2.7/site-packages )。它如何获取旧 site-packages 文件夹的路径?为什么它不会将其安装在它使用的 python 安装的正确位置?

自从推广以来我遇到了一些其他问题/usr/local/bin,但我想如果我理解了这一点我就能取得一些进展。

有人知道发生了什么吗?如果您需要更多信息,我很乐意提供。

答案1

事实证明,shebang 是/usr/local/bin/pip#!/usr/bin/python因此 pip 使用了错误的 python,因此使用了错误的 site-packages 文件夹。

我最终删除了我所做的大部分工作并使用 pythonbrew 安装了一个新的 python,然后从头开始。

相关内容