在 Ubuntu 16.04 上将 pip 升级到最新版本

在 Ubuntu 16.04 上将 pip 升级到最新版本

我正在尝试将 pip 升级到最新版本(旧版本 9.0.1 和最新版本 19.3.1)。使用以下命令。

pip install --upgrade pip

sudo apt-get upgrade pip

但它不会升级并出现以下错误:

**$ pip install --upgrade pip**

Collecting pip
  Using cached https://files.pythonhosted.org/packages/00/b6/9cfa56b4081ad13874b0c6f96af8ce16cfbc1cb06bedf8e9164ce5551ec1/pip-19.3.1-py2.py3-none-any.whl
Installing collected packages: pip
  Found existing installation: pip 9.0.1
    Uninstalling pip-9.0.1:
      Successfully uninstalled pip-9.0.1
  Rolling back uninstall of pip

Exception:
Traceback (most recent call last):

  File "/home/larz/.local/lib/python2.7/site-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)

  File "/home/larz/.local/lib/python2.7/site-packages/pip/commands/install.py", line 342, in run
    prefix=options.prefix_path,

  File "/home/larz/.local/lib/python2.7/site-packages/pip/req/req_set.py", line 784, in install
    **kwargs

  File "/home/larz/.local/lib/python2.7/site-packages/pip/req/req_install.py", line 851, in install
    self.move_wheel_files(self.source_dir, root=root, prefix=prefix)

  File "/home/larz/.local/lib/python2.7/site-packages/pip/req/req_install.py", line 1064, in move_wheel_files
    isolated=self.isolated,

  File "/home/larz/.local/lib/python2.7/site-packages/pip/wheel.py", line 345, in move_wheel_files
    clobber(source, lib_dir, True)

  File "/home/larz/.local/lib/python2.7/site-packages/pip/wheel.py", line 316, in clobber
    ensure_dir(destdir)

  File "/home/larz/.local/lib/python2.7/site-packages/pip/utils/__init__.py", line 83, in ensure_dir
    os.makedirs(path)

  File "/usr/lib/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)

OSError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/pip'

我需要安装 keras。安装时它要求我升级 pip。当我尝试升级 pip 时,我收到上述错误

答案1

以下是我的第一个建议:请勿sudo与一起使用pip 你不需要它。

相反,使用通过 安装的用户级 Python 发行版pyenv。这样,您就不会冒险摆弄系统级框架(从而产生删除依赖项等问题)。

安装 Pyenv

您所要做的就是:

  • 跑过pyenv安装程序
  • 按照说明操作
  • 安装所需的 Python 版本
  • 选择要为给定目录或全局使用的 Python 版本

例如,要安装 3.7,请检查有哪些版本可用:

pyenv install -l | grep 3.7

然后运行:

pyenv install 3.7.4

切换到新版本

现在,您可以选择您的 Python 版本:

pyenv global 3.7.4

这将切换python到 3.7.4。如果您想要“旧”系统 Python,请运行:

pyenv global system

要检查有哪些 Python 版本可用,请运行pyenv versions

升级pip

一旦切换到 Pyenv 版本,您就可以运行,pip并且sudo轻松安装/升级软件包 - 而不会干扰您的系统 Python:

pyenv global 3.7.4
pip install --upgrade pip
pip install numpy

答案2

不要使用pip 来更新。可以通过 获得的apt-get最新版本已经过时了。pipapt-get

快速解决方案:

正如 @kenorb 在评论中所说,你可以pip使用如下方式pip进行升级:sudo

sudo pip install --upgrade pip

正确的解决方法:

使用pyenv-参见@slhck 的回答

相关内容