无法升级Pip。权限被拒绝。为什么?

15

我正在尝试在我的iMac上升级pip,但一直收到权限被拒绝的错误。我是管理员,所以不知道自己做错了什么。

iMac:~ me$ pip install --upgrade pip
    You are using pip version 6.0.8, however version 7.1.2 is available.
    You should consider upgrading via the 'pip install --upgrade pip' command.
    Collecting pip from https://pypi.python.org/packages/py2.py3/p/pip/pip-7.1.2-py2.py3-none-any.whl#md5=5ff9fec0be479e4e36df467556deed4d
      Downloading pip-7.1.2-py2.py3-none-any.whl (1.1MB)
        100% |################################| 1.1MB 181kB/s 
    Installing collected packages: pip
      Found existing installation: pip 6.0.8
        Uninstalling pip-6.0.8:
          Exception:
          Traceback (most recent call last):
            File "/Library/Python/2.7/site-packages/pip-6.0.8-py2.7.egg/pip/basecommand.py", line 232, in main
              status = self.run(options, args)
            File "/Library/Python/2.7/site-packages/pip-6.0.8-py2.7.egg/pip/commands/install.py", line 347, in run
              root=options.root_path,
            File "/Library/Python/2.7/site-packages/pip-6.0.8-py2.7.egg/pip/req/req_set.py", line 543, in install
              requirement.uninstall(auto_confirm=True)
            File "/Library/Python/2.7/site-packages/pip-6.0.8-py2.7.egg/pip/req/req_install.py", line 667, in uninstall
              paths_to_remove.remove(auto_confirm)
            File "/Library/Python/2.7/site-packages/pip-6.0.8-py2.7.egg/pip/req/req_uninstall.py", line 126, in remove
              renames(path, new_path)
            File "/Library/Python/2.7/site-packages/pip-6.0.8-py2.7.egg/pip/utils/__init__.py", line 316, in renames
              shutil.move(old, new)
            File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 300, in move
              rmtree(src)
            File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 247, in rmtree
              rmtree(fullname, ignore_errors, onerror)
            File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 252, in rmtree
              onerror(os.remove, fullname, sys.exc_info())
            File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 250, in rmtree
              os.remove(fullname)
          OSError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/pip-6.0.8-py2.7.egg/EGG-INFO/dependency_links.txt'
我不知道我在这里做错了什么,因为升级似乎相当简单。 谢谢。

2
在前面加上'sudo'来运行它怎么样? - Cleb
3个回答

24

pip 安装需要提升权限

sudo pip install --upgrade pip

当前使用管理员账户并不意味着命令将以提升权限运行,除非您指定 sudo


2
顺便提一下,使用sudo和pip不是一个好习惯,应该使用虚拟环境。 - styvane
6
警告:通常不建议使用root权限运行pip install。请尝试使用'pip install --user'代替。 - jozxyqk
我在这种情况下使用 python3 -m pip install pip --user --upgrade - Adam

3

由于你要在全局范围内升级pip,所以必须使用sudo。我推荐安装Homebrew并让Homebrew完成所有管理工作。

  1. 从应用商店中安装Xcode
  2. 安装Homebrew-ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  3. 安装Python-brew install python,这也会安装pip。

通过此设置,一切都是本地安装的,无需运行sudo.

希望这可以帮助你。


你还可以使用brew install python3来安装Python 3。 - joshlsullivan

2
您可以选择以下两种方式之一:
  1. chown -R user /path/to/file。更详细的信息可以在这个SO帖子中找到,虽然它与确切的问题无关,但它处理了相同的问题。
  2. 快速而简单的方法是执行pip install --upgrade pip,正如已经提到的那样。然而,许多用户会反对这种方法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接