Python Language
Gebruik van de "pip" -module: PyPI Package Manager
Zoeken…
Invoering
Soms moet u bijvoorbeeld pip-pakketbeheer gebruiken in Python. wanneer sommige invoer ImportError
kan verhogen en u de uitzondering wilt verwerken. Als u uitpakt op Windows Python_root/Scripts/pip.exe
in het __main__.py
bestand opgeslagen, waar main
hoofdklasse uit het pip
pakket wordt geïmporteerd. Dit betekent dat het pip-pakket wordt gebruikt wanneer u het uitvoerbare pip-bestand gebruikt. Voor gebruik van pip als uitvoerbaar, zie: pip: PyPI Package Manager
Syntaxis
- pip. <function | attribute | class> waarbij de functie een van de volgende is:
- automatisch aanvullen ()
- Opdracht- en optie-voltooiing voor de hoofdoptie-parser (en opties) en de bijbehorende subopdrachten (en opties). Schakel dit in door een van de voltooiingsshellscripts (bash, zsh of fish) te zoeken.
- check_isolated (args)
- param args {list}
- geeft {boolean} terug
- create_main_parser ()
- retourneert {pip.baseparser.ConfigOptionParser object}
- main (args = None)
- param args {list}
- retourneert {geheel getal} Retourneert indien niet 0
- parseopts (args)
- param args {list}
- get_installed_distributions ()
- geeft {lijst} terug
- get_similar_commands (naam)
- Opdrachtnaam automatisch corrigeren.
- param naam {string}
- geeft {boolean} terug
- get_summaries (besteld = True)
- Opbrengsten gesorteerde (opdrachtnaam, opdrachtoverzicht) tupels.
- get_prog ()
- geeft {string} terug
- dist_is_editable (dist)
- Is distributie een bewerkbare installatie?
- param dist {object}
- geeft {boolean} terug
- commands_dict
- attribuut {woordenboek}
- automatisch aanvullen ()
Voorbeeld van gebruik van opdrachten
import pip
command = 'install'
parameter = 'selenium'
second_param = 'numpy' # You can give as many package names as needed
switch = '--upgrade'
pip.main([command, parameter, second_param, switch])
Alleen de benodigde parameters zijn verplicht, dus zowel pip.main(['freeze'])
als pip.main(['freeze', '', ''])
zijn acceptabel.
Batch installeren
Het is mogelijk om veel pakketnamen in één gesprek door te geven, maar als een installatie / upgrade mislukt, stopt het hele installatieproces en eindigt het met status '1'.
import pip
installed = pip.get_installed_distributions()
list = []
for i in installed:
list.append(i.key)
pip.main(['install']+list+['--upgrade'])
Als u niet wilt stoppen wanneer sommige installaties mislukken, belt u de installatie in loop.
for i in installed:
pip.main(['install']+i.key+['--upgrade'])
Omgaan met ImportError-uitzondering
Wanneer u het python-bestand als module gebruikt, hoeft u niet altijd te controleren of het pakket is geïnstalleerd, maar het is nog steeds nuttig voor scripts.
if __name__ == '__main__':
try:
import requests
except ImportError:
print("To use this module you need 'requests' module")
t = input('Install requests? y/n: ')
if t == 'y':
import pip
pip.main(['install', 'requests'])
import requests
import os
import sys
pass
else:
import os
import sys
print('Some functionality can be unavailable.')
else:
import requests
import os
import sys
Installatie forceren
Veel pakketten bijvoorbeeld op versie 3.4 zouden prima op 3.6 werken, maar als er geen distributies zijn voor een specifiek platform, kunnen ze niet worden geïnstalleerd, maar er is een oplossing. In .whl-bestanden (bekend als wielen) bepaalt de naamgevingsconventie of u het pakket op een specifiek platform kunt installeren. Bijv. scikit_learn‑0.18.1‑cp36‑cp36m‑win_amd64.whl
[ scikit_learn‑0.18.1‑cp36‑cp36m‑win_amd64.whl
] - [versie] - [python-interpreter] - [python-interpreter] - [Besturingssysteem] .whl. Als de naam van het wielbestand wordt gewijzigd, dus het platform komt overeen, probeert pip het pakket te installeren, zelfs als de platform- of python-versie niet overeenkomt. Het verwijderen van het platform of de tolk uit de naam zal een fout veroorzaken in de nieuwste versie van kjhfkjdf.whl is not a valid wheel filename.
.
Als alternatief kan het .whl-bestand worden uitgepakt met behulp van een archiver als 7-zip. - Het bevat meestal distributie meta-map en map met bronbestanden. Deze bronbestanden kunnen eenvoudig worden uitgepakt in de map site-packges
, tenzij dit wiel installatiescript bevat, zo ja, dan moet het eerst worden uitgevoerd.