Python Language
Utilizzo del modulo "pip": PyPI Package Manager
Ricerca…
introduzione
A volte potrebbe essere necessario utilizzare il gestore di pacchetti pip all'interno di python ad es. quando alcune importazioni possono generare ImportError
e si desidera gestire l'eccezione. Se si scompatta in Windows Python_root/Scripts/pip.exe
all'interno viene memorizzato il file __main__.py
, dove viene importata la classe main
dal pacchetto pip
. Questo significa che il pacchetto pip viene utilizzato ogni volta che si utilizza pip eseguibile. Per l'utilizzo di pip come eseguibile, consultare: pip: PyPI Package Manager
Sintassi
- pip. <function | attribute | class> dove function è una delle seguenti:
- completamento automatico ()
- Comando e completamento dell'opzione per il parser dell'opzione principale (e le opzioni) e relativi sottocomandi (e opzioni). Abilita procurando uno degli script di shell di completamento (bash, zsh o fish).
- check_isolated (args)
- param args {lista}
- restituisce {booleano}
- create_main_parser ()
- restituisce {pip.baseparser.ConfigOptionParser object}
- principali (args = None)
- param args {lista}
- restituisce {intero} Se non è fallito, restituisce 0
- parseopts (args)
- param args {lista}
- get_installed_distributions ()
- restituisce {elenco}
- get_similar_commands (nome)
- Il nome del comando è auto-corretto.
- nome parametro {stringa}
- restituisce {booleano}
- get_summaries (ordinato = True)
- Rende ordinate (nome del comando, riepilogo del comando) tuple.
- get_prog ()
- restituisce {string}
- dist_is_editable (dist)
- La distribuzione è un'installazione modificabile?
- param dist {oggetto}
- restituisce {booleano}
- commands_dict
- attributo {dizionario}
- completamento automatico ()
Esempio di utilizzo di comandi
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])
Solo i parametri necessari sono obbligatori, quindi sia pip.main(['freeze'])
che pip.main(['freeze', '', ''])
sono accettabili.
Installazione batch
È possibile passare molti nomi di pacchetti in un'unica chiamata, ma se un aggiornamento / installazione fallisce, l'intero processo di installazione si interrompe e termina con lo stato '1'.
import pip
installed = pip.get_installed_distributions()
list = []
for i in installed:
list.append(i.key)
pip.main(['install']+list+['--upgrade'])
Se non vuoi fermarti quando alcune installazioni falliscono, chiama l'installazione in loop.
for i in installed:
pip.main(['install']+i.key+['--upgrade'])
Gestire l'eccezione di ImportError
Quando si usa il file python come modulo non è necessario controllare sempre se il pacchetto è installato ma è comunque utile per gli script.
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
Forza installazione
Molti pacchetti, ad esempio sulla versione 3.4, funzionerebbero su 3.6, ma se non ci sono distribuzioni per piattaforma specifica, non possono essere installati, ma c'è una soluzione alternativa. Nella convenzione di denominazione dei file .whl (conosciuta come ruote) è possibile decidere se è possibile installare il pacchetto sulla piattaforma specificata. Per esempio. scikit_learn‑0.18.1‑cp36‑cp36m‑win_amd64.whl
[ scikit_learn‑0.18.1‑cp36‑cp36m‑win_amd64.whl
] - [versione] - [interprete python] - [interprete python] - [Sistema operativo] .whl. Se il nome del file wheel viene modificato, quindi la piattaforma non corrisponde, pip tenta di installare il pacchetto anche se la versione platform o python non corrisponde. Rimuovendo la piattaforma o l'interprete dal nome, si verificherà un errore nell'ultimo verso del modulo pip kjhfkjdf.whl is not a valid wheel filename.
.
In alternativa, il file .whl può essere decompresso utilizzando un archiviatore come 7-zip. - Di solito contiene la cartella meta di distribuzione e la cartella con i file di origine. Questi file sorgente possono essere semplicemente decompressi nella directory site-packges
meno che questa rotella non contenga script di installazione, in tal caso, deve essere eseguita per prima.