无法在使用brew安装的Python 2.7的OS X 10.8中使用pip安装virtualenv。

8 浏览
0 Comments

无法在使用brew安装的Python 2.7的OS X 10.8中使用pip安装virtualenv。

当尝试使用brew安装python时,我遇到了以下错误:\n

$ pip install virtualenv
Requirement already satisfied (use --upgrade to upgrade): \
  virtualenv in /Library/Python/2.7/site-packages/virtualenv-1.9.1-py2.7.egg
Cleaning up...

\n很明显,pip在某种程度上查看了系统Python文件夹,而不是位于/usr/local的brew安装的Python文件夹。我该如何避免这个问题?\nbrew doctor未发现任何问题,路径优先级设置正确。\n我尝试从系统Python中删除virtualenv包,\n以便可以使用brew安装的pip来安装virtualenv。\n但是,我无法创建虚拟环境,因为我遇到了以下错误:\n

$ virtualenv datatransfer/
Traceback (most recent call last):
  File "/usr/local/bin/virtualenv", line 5, in 
    from pkg_resources import load_entry_point
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 2603, in 
    working_set.require(__requires__)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 666, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 565, in resolve
    raise DistributionNotFound(req)  # XXX put more info here
pkg_resources.DistributionNotFound: virtualenv==1.9.1

\n所以我没有成功避免系统的virtualenv。\n我做错了什么?

0
0 Comments

在我的$HOME目录中存在.pydistutils.cfg是导致问题的真正原因。这就是为什么我被迫使用sudo pip install <package>。

如果你必须使用sudo来通过pip安装包,那么你的操作是错误的,你需要立即开始对系统进行故障排除;否则一切都会失败,你也不会知道原因。

运行brew doctor命令会警告你有关.pydistutils.cfg文件的问题,所以在对系统进行核心更改后,不要忘记监视该命令的状态。

我花了很长时间才找到这个问题,但现在一切都好了。这个链接真的帮了我很大的忙。

出现这个问题的原因是在用户的$HOME目录中存在.pydistutils.cfg文件,解决方法是运行brew doctor命令来检查.pydistutils.cfg文件的问题,并进行相应的调整。

0
0 Comments

在OS X 10.8上使用brew安装的Python 2.7版本时,无法通过pip安装virtualenv。解决方法是将/usr/local/bin/virtualenv*移动到/usr/local/bin/venv-old/目录下,然后执行pip install -I virtualenv命令。无需卸载和重新安装Python。

0
0 Comments

问题的出现原因:在安装了brew版本的Python和virtualenv之后,无法使用pip install virtualenv命令进行安装。

解决方法:

1. 卸载brew版本的Python和virtualenv:

brew uninstall python

brew uninstall pyenv-virtualenv

2. 将/usr/local/bin目录下找到的所有virtualenv*文件移动到另一个文件夹中:

sudo mkdir /usr/local/bin/venv-old

sudo mv /usr/local/bin/virtualenv* /usr/local/bin/venv-old/

3. 打开一个新的终端窗口,确认当前状态干净无残留:

which python # => /usr/bin/python

which virtualenv # => virtualenv not found

4. 使用推荐的方法干净地安装Python和virtualenv(wrapper):

brew install python --with-brewed-openssl

# 现在打开一个新的终端窗口(以访问/usr/local/bin/python)

pip install virtualenv

pip install virtualenvwrapper

这是我找到的最可靠的解决方法,无需重新安装任何东西。谢谢!

如果像我一样,在运行pip uninstall virtualenv后,/usr/local/bin/virtualenv仍然存在,似乎可以手动删除/usr/local/bin/virtualenv,然后pip install提供了一个成功运行的virtualenv版本。

是的,这就是为什么我建议将所有的/usr/local/bin/virtualenv*文件移动到一个新的文件夹中。我不喜欢永久删除我的home文件夹之外的任何东西,因为你永远不知道哪个系统实用程序可能会依赖它。

0