关闭。这个问题是off-topic .它目前不接受答案。
想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。
9年前关闭。
Improve this question
我一直在使用 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(在任何项目特定的虚拟环境之外,稍后会出现),我按照 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的站 pip 包现在位于/usr/local/lib/python2.7/site-packages
, 当我做 pip freeze
,它应该是空的,因为那里还没有安装任何东西。但是,pip freeze
仍然报告旧(OS X)站 pip 包文件夹中安装的东西。以下是构建后的一些信息:$ 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
来验证)。如何获取旧站 pip 包文件夹的路径?为什么它不会将它安装在它正在使用的 python 安装的正确位置?自从推广
/usr/local/bin
后,我遇到了其他几个问题但我想如果我明白这一 pip ,我就能到达某个地方。谁能看到发生了什么?如果您需要更多信息,我很乐意提供。
最佳答案
由于您将使用自定义 python 安装作为主要安装,我建议您从系统 python 中卸载所有非标准包,并确保现有的 easy_install.py 已消失(可能通过手动删除它)。然后下载distribute 的distribute_setup.py 并使用新的解释器运行它。从那时起,一切都应该按预期工作。
关于Mac OS X 上的 Python 安装问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12321357/