我正在尝试将 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
最新版本已经过时了。pip
apt-get
快速解决方案:
正如 @kenorb 在评论中所说,你可以pip
使用如下方式pip
进行升级:sudo
sudo pip install --upgrade pip
正确的解决方法:
使用pyenv
-参见@slhck 的回答