不能" sudo pip uninstall" OS X El Capitan

时间:2016-01-27 23:09:27

标签: macos python-2.7 pip

前言:我的OS X Python安装是混乱。在我发现Homebrew之前,我开始使用Python系统。所以我一直在使用sudo pip install。我现在正在尝试清理所有内容,然后在Homebrew的Python上安装/链接pip包。

1)在许多SO答案中,人们建议:pip freeze | xargs sudo pip uninstall -y这对我不起作用。我得到了很长的追溯。这些是最具代表性的部分:

~ $ pip freeze | xargs sudo pip uninstall -y
You are using pip version 7.1.2, however version 8.0.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
The directory '/Users/smaniato/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Uninstalling altgraph-0.10.2:
Exception:
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/pip/basecommand.py", line 211, in main
[...]
Error: [('/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/altgraph/__init__.py', '/tmp/pip-p8yIlU-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/altgraph/__init__.py', "[Errno 1] Operation not permitted: '/tmp/pip-p8yIlU-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/altgraph/__init__.py'"), ('/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/altgraph/__init__.pyc', '/tmp/pip-p8yIlU-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/altgraph/__init__.pyc',
[...]
"[Errno 1] Operation not permitted: '/tmp/pip-p8yIlU-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/altgraph'")]

其中altgraph只是pip list中的第一个pip包(请记住这一点)。

2)然后我按照警告的建议尝试了pip freeze | xargs sudo -H pip uninstall -y,但这只是删除了警告。错误消息仍然存在。

3)我也尝试过任何引起投诉的目录(例如~/Library/Caches/pip及其一些父母和孩子)。出于某种原因,我无法chown最有问题的目录/tmp

~ $ sudo chown -R ${USER} /tmp
chown: /tmp: Operation not permitted

4)最后,我尝试从列表中的手动卸载软件包,瞧,我可以轻松地做sudo pip uninstall virtualenv。尝试手动卸载altgraph会导致上述错误。

任何想法如何进行?记住,我不关心任何一个包裹;我只想使用Homebrew的Python从头开始,然后从头开始。谢谢!

更新

  1. 手动下载列表,bdist-mpkg-0.5.0
  2. 也会发生同样的事情
  3. 还有一些:matplotlibzope.interfacexattrsixscipypytz

2 个答案:

答案 0 :(得分:11)

我很确定brew reinstall python以某种方式解决了我遇到的一系列问题。然后我还必须在rm -rf

中对一些内容进行核对(即/usr/local/lib/python2.7/site-packages

与我的特定用例相关的问题和答案(OS X上的ROS安装):https://github.com/mikepurvis/ros-install-osx/issues/11

答案 1 :(得分:1)

不要使用Homebrew或MacPorts,也不要使用内置Python。这些是嵌套的解决方案,最终会以某种方式失败(PEP20:flat优于嵌套)。至少,你必须等待包管理系统注意到任何PyPI更新,或者回到使用pip,就像你在没有任何包管理器的情况下所做的那样。使用MacPorts仅安装需要编译和自定义的非Python项目(例如,ATLAS)。

最简单的方法是从python.org安装一个独立的Python(来自二进制发行版,或者从源代码构建)。否sudo,在您的用户下安装。然后:

pip install -U pip setuptools virtualenvwrapper

根据他们的文档~/.bashrcmakevirtualenv foo来源您的包装器。所有其他工作仅在虚拟环境中执行。如果您使用Python 3,那么virtualenv是解释器的一部分,因此您不需要virtualenvwrapper和与之相关的小舞蹈。