Mac OS X上的Python安装问题

时间:2012-09-07 15:43:22

标签: python macos pip

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

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

要在计算机上构建新版本的python(在任何项目特定的虚拟环境之外,稍后会出现),我按照this article上的说明操作并设法在/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)site-packages文件夹中安装的内容。以下是构建后的一些信息:

$ 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 个答案:

答案 0 :(得分:1)

由于您将使用自定义python安装作为主要安装,我建议您从系统python中卸载所有非标准软件包,并确保现有的easy_install.py已消失(可能通过手动删除它)。然后下载distribute的distribute_setup.py并使用新的解释器运行它。从那时起,一切都应该按预期工作。