Hoe een pakket updaten/upgraden met pip?

Wat is de manier om een ​​pakket bij te werken met pip?
die werken niet:

pip update
pip upgrade

Ik weet dat dit een simpele vraag is, maar het is nodig omdat het niet zo gemakkelijk te vinden is (pip documentatie verschijnt niet en andere vragen van stack overflow zijn relevant, maar gaan daar niet precies over)


Antwoord 1, autoriteit 100%

De weg is

pip install <package_name> --upgrade

of in het kort

pip install <package_name> -U

Als u sudo gebruikt, wordt u gevraagd uw root-wachtwoord in te voeren om de actie te bevestigen, maar hoewel dit gebruikelijk is, wordt het beschouwd als onveilig.

Als je geen root-wachtwoord hebt (als je niet de beheerder bent), zou je waarschijnlijk moeten werken met virtualenv.

U kunt ook de gebruikersvlag gebruiken om deze alleen op deze gebruiker te installeren.

pip install <package_name> --upgrade --user

Antwoord 2, autoriteit 6%

Voor een niet-specifiek pakket en een meer algemene oplossing kun je pip-review. Een tool die controleert welke pakketten kunnen/moeten worden bijgewerkt.

Installeren:

$ pip install pip-review

Voer vervolgens uit:

$ 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

Antwoord 3, autoriteit 3%

gebruik deze code in teminal :

python -m pip install --upgrade PAKAGE_NAME #instead of PAKAGE_NAME 

ik wil bijvoorbeeld pip-pakket updaten:

 python -m pip install --upgrade pip

meer voorbeeld:

python -m pip install --upgrade selenium
python -m pip install --upgrade requests
...

Antwoord 4, autoriteit 2%

tl;dr script om alle geïnstalleerde pakketten bij te werken

Als je maar één pakket wilt upgraden, raadpleeg dan @borgr’s antwoord. Ik vind het vaak nodig, of in ieder geval prettig, om al mijn pakketten in één keer te upgraden. Momenteel ondersteunt pip die actie niet standaard, maar met sh-scripting is het eenvoudig genoeg. Je gebruikt pip list, awk (of cut en tail), en commando substitutie. Mijn normale oneliner is:

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

Hierdoor wordt om het root-wachtwoord gevraagd. Als je daar geen toegang toe hebt, de --user optie van pip of virtualenv misschien iets om naar te kijken.


Antwoord 5, autoriteit 2%

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)

Opslaan als xx.py
Voer vervolgens Python3 xx.py uit
Omgeving: python3.5+ pip10.0+


Antwoord 6

Hoewel off-topic, kan men deze vraag bereiken door pip zelf te updaten (zie hier).

Om pip voor Python3.4+ te upgraden, moet je pip3 als volgt gebruiken:

sudo pip3 install pip --upgrade

Hiermee wordt pip geüpgraded op: /usr/local/lib/python3.X/dist-packages

Anders, om pip voor Python2.7 te upgraden, zou je pip als volgt gebruiken:

sudo pip install pip --upgrade

Hiermee wordt pip geüpgraded op: /usr/local/lib/python2.7/dist-packages

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Other episodes