我可以更新pip管理的包,但如何更新pip本身?根据pip--version,我目前在virtualenv中安装了pip1.1,我想更新到最新版本。

这是什么命令?我需要使用distribute吗?或者是否有本机pip或virtualenv命令?我已经尝试过pip更新和pip更新,但没有成功。


当前回答

我吃树莓皮也有类似的问题。

问题是http需要SSL,所以我需要强制它使用https来绕过这一要求。

sudo pip install --upgrade pip --index-url=https://pypi.python.org/simple

or

sudo pip-3.2 --upgrade pip --index-url=https://pypi.python.org/simple/

其他回答

我在Debian Jessie的指导下尝试了上述所有解决方案。它们不起作用,因为它只需要debian包管理器编译的最新版本1.5.6,相当于6.0.x版。一些使用pip作为先决条件的包将无法正常工作,例如spaCy(需要选项--no cache dir才能正常工作)。

因此,解决这些问题的最佳方法是使用wget、从网站或使用curl运行下载的get-pip.py,如下所示:

 wget https://bootstrap.pypa.io/get-pip.py -O ./get-pip.py
 python ./get-pip.py
 python3 ./get-pip.py

这将安装当前版本,在编写此解决方案时,该版本为9.0.1,远远超出Debian提供的版本。

 $ pip --version
 pip 9.0.1 from /home/myhomedir/myvirtualenvdir/lib/python2.7/dist-packages (python 2.7)
 $ pip3 --version
 pip 9.0.1 from /home/myhomedir/myvirtualenvdir/lib/python3.4/site-packages (python 3.4)

在linux中

我将使用此代码进行更新

sudo -H pip3 install --upgrade pip

在我的情况下,我的pip版本已损坏,因此更新本身无法工作。

Fix:

(inside virtualenv):easy_install -U pip

pip版本10有一个问题。它将显示为错误:

ubuntu@mymachine-:~/mydir$ sudo pip install --upgrade pip
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main

解决方案是在您要升级的供应商中,然后运行:

sudo myvenv/bin/pip install --upgrade pip

而不仅仅是

sudo pip install --upgrade pip

首先,执行以下操作:

sudo apt install python3 pip python setuptools文档

然后,作为非root用户(绝不,绝不以root身份运行pip*!):

# N.B. bash shell works for this, I have never tested with other shells!
. ....your_virtualenv_folder/bin/activate
pip3 install -U pip

注意:据我所知,-U是--upgrade的同义词。