2013-03-05 173 views
286

我可以更新点管理的软件包,但是如何更新点子本身?根据pip --version,我目前在我的virtualenv中安装了pip 1.1,我想更新到最新版本。如何从我的虚拟环境中更新pip本身?

这是什么命令?我需要使用分发还是有本地pip或virtualenv命令?我已经试过pip updatepip update pip没有成功。

+18

'pip install --upgrade pip'?这只是另一个PyPI包。 – Cairnarvon 2013-03-05 10:34:07

+0

该命令给我“/ Users/zak/MyProject/venv/bin/pip install:error:no such option:--update” – zakdances 2013-03-05 10:36:34

+3

它是'--upgrade',而不是'--update',对不起。我立即编辑了我的帖子,但你必须在错误的时间看到它。 – Cairnarvon 2013-03-05 10:37:30

回答

533

pip只是一个PyPI package像任何其他;你可以用它来升级自己,你会升级任何包以同样的方式:

pip install --upgrade pip 

在Windows上,recommended command是:

python -m pip install --upgrade pip 
+31

在Windows下,我尝试使用pip升级pip时出现权限问题。相反,我使用easy_install来升级:'easy_install pip' – bsa 2013-11-05 06:25:21

+6

当我做了这个点似乎升级(1.1 - > 1.4),但是当我做“点 - 版本”它仍然显示旧版本1.1。试图停用并再次激活virtualenv,但它仍然显示旧版本。 – Zitrax 2013-12-02 11:46:25

+26

在Windows上最好使用如下命令:'python -m pip install --upgrade pip'以避免从脚本目录运行pip.exe。 – bialix 2014-02-19 14:47:03

32

更安全的方法是run pip though a python module

python -m pip install -U pip 

在windows上,似乎有一个尝试替换自己的二进制文件的问题,这种方法可以解决这个限制。

+5

这是现在pip本身推荐的,如果它检测到它自己的更新版本。 – tephyr 2016-05-29 21:51:30

+1

我认为这是更安全的原因是因为在某些操作系统(Windows)上,只是直接运行pip可以在可执行文件上创建文件锁定,这会阻止更新它。通过调用Python并告诉它直接加载模块,避免访问可执行文件。 – jpmc26 2016-07-15 15:44:14

0

在我的情况下,这从终端命令行曾在Debian的稳定

python3 -m pip install --upgrade pip 
5

在我的情况,我的点子版本被打破,从而自身的更新将无法正常工作。

修复:

(inside virtualenv):easy_install -U pip 
+0

这也是我的情况。我尝试了所有其他方法,但只有这一个帮助我。谢谢 ! – levif 2017-08-23 11:01:22

+0

同样在这里,这是在Debian上为我工作的唯一方法。使用python或pip从virtualenv内升级pip会失败,因为它拒绝卸载位于venv之外的现有pip。 – user3748764 2017-09-28 11:37:00

1

我尝试了所有在Debian杰西上面提到的这些解决方案。它们不起作用,因为它只需要debian软件包管理器编译的最新版本,它是1.5.6版本,相当于6.0.x版本。某些使用pip作为先决条件的软件包将无法用作结果,例如spaCy(它需要选项--no-cache-dir才能正常运行)。

因此,要解决这些问题的实际最好的方法是运行get-pip.py使用wget,从网站或者使用curl如下地址下载:

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) 
0

为了让我为我工作,我不得不在Python目录中使用Python命令提示符(在VS CODE的WIN10上)钻取。在我的情况下,它在我的“AppData \ Local \ Programs \ Python \ python35-32”目录中。从那里现在我运行命令...

python -m pip install --upgrade pip 

这工作,我很好去。