Pip kullanarak bir paket nasıl güncellenir / yükseltilir?


172

Pip kullanarak bir paketi güncellemenin yolu nedir? bunlar çalışmıyor:

pip update
pip upgrade

Bunun basit bir soru olduğunu biliyorum ama bulmak o kadar kolay olmadığı için gerekli (pip belgeleri açılmıyor ve yığın taşmasıyla ilgili diğer sorular alakalı ama tam olarak ilgili değil)

Yanıtlar:


281

Yol

sudo pip install [package_name] --upgrade

veya kısaca

sudo pip install [package_name] -U

sudo işlemi onaylamak için kök şifrenizi girmenizi isteyecektir.

Kök şifreniz yoksa (yönetici değilseniz) muhtemelen virtualenv ile çalışmanız ve ardından şunu bırakmanız gerekir sudo:

pip install [package_name] --upgrade

2
As pip install --helpsöyledi: -U, --upgrade Upgrade all specified packages to the newest available version.. Bu yüzden büyük harf olmalı -U, değil -u.
Peter Liang

25
Neden böyle yaygın bir seçenek gösterilmiyor pip --helpbana bir bilmece ...
Husky

3
@Husky - Evet, aynı satırlar boyunca, neden sadece upgradeyanıtta gördüklerinizi yapan bir komut yapmıyorlar, iyi bir soru. (Yani, 'yükseltme' kullanırsanız, basitçe install+ ne --upgradeyaparsa yapın.) Bir çeşit 'takma ad'.
bshea

10

Spesifik olmayan bir paket ve daha genel bir çözüm için, hangi paketlerin güncellenebileceğini / güncellenmesi gerektiğini kontrol eden bir araç olan pip-review'e göz atabilirsiniz.

$ pip-review --interactive
requests==0.14.0 is available (you have 0.13.2)
Upgrade now? [Y]es, [N]o, [A]ll, [Q]uit y

3
Bu doğrudan soruyu cevaplamasa da, bazı insanlar bu mesajı aradıklarında aslında aradıkları şey olabilir.
borgr

8

tl; dr tüm kurulu paketleri güncellemek için komut dosyası

Yalnızca bir paket yükseltmek istiyorsanız, @ borgr en atıfta cevap . Sık sık tüm paketlerimin bir kerede yükseltilmesini gerekli veya en azından memnun edici buluyorum. Şu anda, pip bu eylemi yerel olarak desteklemiyor, ancak sh komut dosyası oluşturma ile yeterince basit. Sen kullanmak pip list, awk(ya cutve tail) ve komut ikamesi. Normal tekli astarım:

for i in $(pip list -o | awk 'NR > 2 {print $1}'); do sudo pip install -U $i; done

Bu root şifresini isteyecektir. Buna erişiminiz yoksa, virtualenv--user seçeneği göz önünde bulundurulması gereken bir şey olabilir.pip


7
import subprocess as sbp
import pip
pkgs = eval(str(sbp.run("pip3 list -o --format=json", shell=True,
                         stdout=sbp.PIPE).stdout, encoding='utf-8'))
for pkg in pkgs:
    sbp.run("pip3 install --upgrade " + pkg['name'], shell=True)

Xx.py olarak kaydet
Sonra Python3 xx.py'yi çalıştırın
Ortam: python3.5 + pip10.0 +


Bu çözümü seviyorum. Güncelleme sırasında paket adını göstermek için bir baskı ekledim:print('updating ', pkg['name'])
pvoj

4

Python3.4 + için pip yükseltmek için pip3'ü aşağıdaki gibi kullanmanız gerekir:

sudo pip3 install pip --upgrade

Bu işlem, /usr/local/lib/python3.X/dist-packages adresinde bulunan pip'i yükseltir.

Aksi takdirde, Python2.7 için pip yükseltmek için pip'i aşağıdaki gibi kullanırsınız:

sudo pip install pip --upgrade

Bu, /usr/local/lib/python2.7/dist-packages adresinde bulunan pip'i yükseltir.


7
OP'nin sorduğu şey bu değil. PIP'in kendisini değil, belirli bir paketi nasıl yükselteceğini soruyor.
commadelimited

yine de burada bu diğer cevaplar arasında sahip olmak yararlı görünüyor
uhoh
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.