Python Language
pip: PyPI Package Manager
Ricerca…
introduzione
pip è il gestore di pacchetti più utilizzato per Python Package Index, installato di default con le versioni recenti di Python.
Sintassi
- pip <comando> [opzioni] dove <comando> è uno di:
- installare
- Installa i pacchetti
- disinstallazione
- Disinstalla i pacchetti
- congelare
- Emetti i pacchetti installati nel formato dei requisiti
- elenco
- Elenca i pacchetti installati
- mostrare
- Mostra informazioni sui pacchetti installati
- ricerca
- Cerca PyPI per i pacchetti
- ruota
- Costruisci le ruote in base alle tue esigenze
- cerniera lampo
- Pacchetti singoli zip (deprecati)
- Unzip
- Scompatta i singoli pacchetti (deprecati)
- fascio
- Crea pioli (deprecato)
- Aiuto
- Mostra la guida per i comandi
- installare
Osservazioni
A volte, pip
eseguirà una compilazione manuale di codice nativo. Su Linux python sceglierà automaticamente un compilatore C disponibile sul tuo sistema. Fare riferimento alla tabella seguente per la versione di Visual Studio / Visual C ++ richiesta su Windows (le versioni più recenti non funzioneranno.).
Versione Python | Versione di Visual Studio | Versione Visual C ++ |
---|---|---|
2.6 - 3.2 | Visual Studio 2008 | Visual C ++ 9.0 |
3.3 - 3.4 | Visual Studio 2010 | Visual C ++ 10.0 |
3.5 | Visual Studio 2015 | Visual C ++ 14.0 |
Installa pacchetti
Per installare l'ultima versione di un pacchetto chiamato SomePackage
:
$ pip install SomePackage
Per installare una versione specifica di un pacchetto:
$ pip install SomePackage==1.0.4
Per specificare una versione minima da installare per un pacchetto:
$ pip install SomePackage>=1.0.4
Se i comandi mostrano un errore di autorizzazione negato su Linux / Unix, utilizzare sudo
con i comandi
Installa dai file dei requisiti
$ pip install -r requirements.txt
Ogni riga del file dei requisiti indica qualcosa da installare, e come gli argomenti per installare pip, i dettagli sul formato dei file sono qui: Requisiti Formato file .
Dopo aver installato il pacchetto puoi controllarlo usando il comando freeze
:
$ pip freeze
Disinstalla pacchetti
Per disinstallare un pacchetto:
$ pip uninstall SomePackage
Per elencare tutti i pacchetti installati usando `pip`
Per elencare i pacchetti installati:
$ pip list
# example output
docutils (0.9.1)
Jinja2 (2.6)
Pygments (1.5)
Sphinx (1.1.2)
Per elencare i pacchetti obsoleti e mostrare l'ultima versione disponibile:
$ pip list --outdated
# example output
docutils (Current: 0.9.1 Latest: 0.10)
Sphinx (Current: 1.1.2 Latest: 1.1.3)
Aggiorna pacchetti
In esecuzione
$ pip install --upgrade SomePackage
aggiornerà il pacchetto SomePackage
e tutte le sue dipendenze. Inoltre, pip rimuove automaticamente la versione precedente del pacchetto prima dell'aggiornamento.
Per aggiornare pip in sé, fallo
$ pip install --upgrade pip
su Unix o
$ python -m pip install --upgrade pip
su macchine Windows.
Aggiornamento di tutti i pacchetti obsoleti su Linux
pip
non contiene un flag per consentire a un utente di aggiornare tutti i pacchetti obsoleti in un colpo solo. Tuttavia, questo può essere ottenuto collegando i comandi in un ambiente Linux:
pip list --outdated --local | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U
Questo comando prende tutti i pacchetti nel virtualenv locale e verifica se sono obsoleti. Da questo elenco, ottiene il nome del pacchetto e poi lo convoglia con un comando pip install -U
. Alla fine di questo processo, tutti i pacchetti locali dovrebbero essere aggiornati.
Aggiornamento di tutti i pacchetti obsoleti su Windows
pip
non contiene un flag per consentire a un utente di aggiornare tutti i pacchetti obsoleti in un colpo solo. Tuttavia, questo può essere ottenuto collegando i comandi in un ambiente Windows:
for /F "delims= " %i in ('pip list --outdated --local') do pip install -U %i
Questo comando prende tutti i pacchetti nel virtualenv locale e verifica se sono obsoleti. Da questo elenco, ottiene il nome del pacchetto e poi lo convoglia con un comando pip install -U
. Alla fine di questo processo, tutti i pacchetti locali dovrebbero essere aggiornati.
Creare un file requirements.txt di tutti i pacchetti sul sistema
pip
assiste nella creazione di file requirements.txt
fornendo l'opzione freeze
.
pip freeze > requirements.txt
Ciò salverà un elenco di tutti i pacchetti e la loro versione installata sul sistema in un file denominato requirements.txt
nella cartella corrente.
Crea un file requirements.txt di pacchetti solo nella virtualenv corrente
pip
assiste nella creazione di file requirements.txt
fornendo l'opzione freeze
.
pip freeze --local > requirements.txt
Il parametro --local
restituirà solo un elenco di pacchetti e versioni installate localmente su virtualenv. I pacchetti globali non saranno elencati.
Usando una certa versione di Python con pip
Se hai installato sia Python 3 che Python 2, puoi specificare quale versione di Python vuoi usare con pip. Ciò è utile quando i pacchetti supportano solo Python 2 o 3 o quando si desidera testare con entrambi.
Se vuoi installare i pacchetti per Python 2, esegui entrambi:
pip install [package]
o:
pip2 install [package]
Se si desidera installare pacchetti per Python 3, fare:
pip3 install [package]
È anche possibile richiamare l'installazione di un pacchetto in una specifica installazione python con:
\path\to\that\python.exe -m pip install some_package # on Windows OR
/usr/bin/python25 -m pip install some_package # on OS-X/Linux
Su piattaforme OS-X / Linux / Unix è importante essere consapevoli della distinzione tra la versione di sistema di python, (che l'aggiornamento rende il rendering del sistema inoperabile) e le versioni utente di python. È possibile , a seconda di quale si sta tentando di eseguire l'aggiornamento , è necessario prefixare questi comandi con sudo
e immettere una password.
Allo stesso modo in Windows alcune installazioni python, specialmente quelle che fanno parte di un altro pacchetto, possono finire installate nelle directory di sistema - quelle che dovrete aggiornare da una finestra di comando in esecuzione in modalità Admin - se vi sembra che sia necessario fare questo è una buona idea per verificare quali l'installazione di Python si sta cercando di aggiornare con un comando come python -c"import sys;print(sys.path);"
o py -3.5 -c"import sys;print(sys.path);"
puoi anche verificare quale pip stai cercando di eseguire con pip --version
Su Windows, se hai installato sia python 2 che python 3 e sul tuo percorso e il tuo python 3 è maggiore di 3.4, probabilmente avrai py
python launcher sul tuo percorso di sistema. Puoi quindi fare trucchi come:
py -3 -m pip install -U some_package # Install/Upgrade some_package to the latest python 3
py -3.3 -m pip install -U some_package # Install/Upgrade some_package to python 3.3 if present
py -2 -m pip install -U some_package # Install/Upgrade some_package to the latest python 2 - 64 bit if present
py -2.7-32 -m pip install -U some_package # Install/Upgrade some_package to python 2.7 - 32 bit if present
Se si stanno eseguendo e mantenendo più versioni di python, si consiglia vivamente di leggere gli venv
virtuali python virtualenv
o venv
che consentono di isolare sia la versione di python che i pacchetti presenti.
Installare pacchetti non ancora sul pip come ruote
Molti, puri python, i pacchetti non sono ancora disponibili sull'Indice dei Pacchetti Python come ruote ma continuano a essere installati bene. Tuttavia, alcuni pacchetti su Windows danno il temuto errore vcvarsall.bat non trovato.
Il problema è che il pacchetto che stai cercando di installare contiene un'estensione C o C ++ e al momento non è disponibile come una ruota precostruita dall'indice del pacchetto python, pypi , e su Windows non hai la catena di strumenti necessaria per costruire tali articoli.
La risposta più semplice è quella di visitare l' eccellente sito di Christoph Gohlke e individuare la versione appropriata delle librerie di cui hai bisogno. Se appropriato nel nome del pacchetto a -cp NN - deve corrispondere alla tua versione di python, cioè se stai usando windows 32 bit python anche su win64 il nome deve includere -win32- e se si usa il python a 64 bit deve includere -win_amd64 - e quindi la versione python deve corrispondere, cioè per Python 34 il nome file deve includere -cp 34- , ecc. Questo è fondamentalmente la magia che pip fa per te sul sito pypi.
In alternativa, è necessario ottenere il kit di sviluppo di Windows appropriato per la versione di python che si sta utilizzando, le intestazioni per qualsiasi libreria che il pacchetto si sta tentando di creare interfacce, possibilmente le intestazioni python per la versione di python, ecc.
Python 2.7 utilizzava Visual Studio 2008, Python 3.3 e 3.4 utilizzava Visual Studio 2010 e Python 3.5+ utilizza Visual Studio 2015.
- Installare " Visual C ++ Compiler Package for Python 2.7 ", disponibile dal sito Web di Microsoft o
- Installare " Windows SDK per Windows 7 e .NET Framework 4 " (v7.1), disponibile dal sito Web di Microsoft o
- Installa Visual Studio 2015 Community Edition (o qualsiasi versione successiva, quando vengono rilasciati) , assicurandoti di selezionare le opzioni per installare il supporto C & C ++ non più quello predefinito - Mi viene detto che questo può richiedere fino a 8 ore per il download e l'installazione quindi assicurati che queste opzioni siano impostate al primo tentativo.
Quindi potrebbe essere necessario individuare i file di intestazione, nella revisione corrispondente per tutte le librerie a cui si collega il pacchetto desiderato e scaricarle in posizioni appropriate.
Infine puoi lasciare che pip faccia la tua build - ovviamente se il pacchetto ha dipendenze che non hai ancora potresti dover trovare anche i file header per loro.
Alternative: Vale anche la pena di guardare, sia sul sito di pypi che su quello di Christop , per qualsiasi versione leggermente precedente del pacchetto che si sta cercando sia in puro python sia precostruito per la propria piattaforma e la versione python e possibilmente usando quelli, se trovato, fino a quando il pacchetto non sarà disponibile. Allo stesso modo, se stai usando la versione più recente di python, potresti trovare che i manutentori del pacchetto impiegano un po 'di tempo per aggiornarsi, quindi per i progetti che hanno davvero bisogno di un pacchetto specifico potresti dover utilizzare per il momento un python leggermente più vecchio. Puoi anche controllare il sito sorgente dei pacchetti per vedere se esiste una versione biforcuta che è disponibile pre-costruita o come puro python e cercare pacchetti alternativi che forniscano le funzionalità di cui hai bisogno ma che siano disponibili - un esempio che ti viene in mente è il Cuscino , mantenuto attivamente , in sostituzione di PIL attualmente non aggiornato in 6 anni e non disponibile per Python 3 .
Afterword , incoraggerei chiunque abbia questo problema ad andare sul bug tracker per il pacchetto e aggiungere, o rilanciare se non ce n'è già uno, un ticket che richiede educatamente che i manutentori del pacchetto forniscano una ruota su pypi per il tuo specifico combinazione di piattaforma e python, se questo è fatto, normalmente le cose andranno meglio con il tempo, alcuni manutentori di pacchetti non si rendono conto di aver perso una determinata combinazione che le persone potrebbero utilizzare.
Nota sull'installazione di pre-release
Pip segue le regole del versioning semantico e, per impostazione predefinita, preferisce i pacchetti rilasciati rispetto ai pre-release. Quindi se un determinato pacchetto è stato rilasciato come V0.98
e c'è anche un release candidate V1.0-rc1
il comportamento predefinito di pip install
di pip install
sarà installare V0.98
- se si desidera installare il candidato di rilascio, si è avvisati per testare prima in un ambiente virtuale , è possibile abilitarlo con --pip install --pre
nome-pacchetto o --pip install --pre --upgrade
nome-pacchetto . In molti casi, i pre-release o i release candidate potrebbero non avere ruote costruite per tutte le combinazioni di piattaforme e versioni, quindi è più probabile che si verifichino i problemi di cui sopra.
Nota sull'installazione di versioni di sviluppo
Puoi anche usare pip per installare le versioni di sviluppo dei pacchetti da github e altre posizioni, dal momento che tale codice è in flusso è molto improbabile che abbia le ruote create per questo, quindi qualsiasi pacchetto impuro richiederà la presenza degli strumenti di compilazione, e potrebbero essere interrotto in qualsiasi momento, quindi l'utente è fortemente incoraggiato a installare tali pacchetti solo in un ambiente virtuale.
Esistono tre opzioni per tali installazioni:
- Scarica snapshot compresso, la maggior parte dei sistemi di controllo versione online ha la possibilità di scaricare un'istantanea compressa del codice. Questo può essere scaricato manualmente e quindi installato con percorso di
pip install
/ su / scaricato / file nota che per la maggior parte dei formati di compressione pip gestirà il disimballaggio in un'area della cache, ecc. - Lascia che sia il pip a gestire il download e l'installazione per te con: URL di
pip install
/ di / package / repository - potresti anche aver bisogno di usare i--trusted-host
,--client-cert
e / o--proxy
per farlo funzionare correttamente, specialmente in un ambiente aziendale. per esempio:
> py -3.5-32 -m venv demo-pip
> demo-pip\Scripts\activate.bat
> python -m pip install -U pip
Collecting pip
Using cached pip-9.0.1-py2.py3-none-any.whl
Installing collected packages: pip
Found existing installation: pip 8.1.1
Uninstalling pip-8.1.1:
Successfully uninstalled pip-8.1.1
Successfully installed pip-9.0.1
> pip install git+https://github.com/sphinx-doc/sphinx/
Collecting git+https://github.com/sphinx-doc/sphinx/
Cloning https://github.com/sphinx-doc/sphinx/ to c:\users\steve-~1\appdata\local\temp\pip-04yn9hpp-build
Collecting six>=1.5 (from Sphinx==1.7.dev20170506)
Using cached six-1.10.0-py2.py3-none-any.whl
Collecting Jinja2>=2.3 (from Sphinx==1.7.dev20170506)
Using cached Jinja2-2.9.6-py2.py3-none-any.whl
Collecting Pygments>=2.0 (from Sphinx==1.7.dev20170506)
Using cached Pygments-2.2.0-py2.py3-none-any.whl
Collecting docutils>=0.11 (from Sphinx==1.7.dev20170506)
Using cached docutils-0.13.1-py3-none-any.whl
Collecting snowballstemmer>=1.1 (from Sphinx==1.7.dev20170506)
Using cached snowballstemmer-1.2.1-py2.py3-none-any.whl
Collecting babel!=2.0,>=1.3 (from Sphinx==1.7.dev20170506)
Using cached Babel-2.4.0-py2.py3-none-any.whl
Collecting alabaster<0.8,>=0.7 (from Sphinx==1.7.dev20170506)
Using cached alabaster-0.7.10-py2.py3-none-any.whl
Collecting imagesize (from Sphinx==1.7.dev20170506)
Using cached imagesize-0.7.1-py2.py3-none-any.whl
Collecting requests>=2.0.0 (from Sphinx==1.7.dev20170506)
Using cached requests-2.13.0-py2.py3-none-any.whl
Collecting typing (from Sphinx==1.7.dev20170506)
Using cached typing-3.6.1.tar.gz
Requirement already satisfied: setuptools in f:\toolbuild\temp\demo-pip\lib\site-packages (from Sphinx==1.7.dev20170506)
Collecting sphinxcontrib-websupport (from Sphinx==1.7.dev20170506)
Downloading sphinxcontrib_websupport-1.0.0-py2.py3-none-any.whl
Collecting colorama>=0.3.5 (from Sphinx==1.7.dev20170506)
Using cached colorama-0.3.9-py2.py3-none-any.whl
Collecting MarkupSafe>=0.23 (from Jinja2>=2.3->Sphinx==1.7.dev20170506)
Using cached MarkupSafe-1.0.tar.gz
Collecting pytz>=0a (from babel!=2.0,>=1.3->Sphinx==1.7.dev20170506)
Using cached pytz-2017.2-py2.py3-none-any.whl
Collecting sqlalchemy>=0.9 (from sphinxcontrib-websupport->Sphinx==1.7.dev20170506)
Downloading SQLAlchemy-1.1.9.tar.gz (5.2MB)
100% |################################| 5.2MB 220kB/s
Collecting whoosh>=2.0 (from sphinxcontrib-websupport->Sphinx==1.7.dev20170506)
Downloading Whoosh-2.7.4-py2.py3-none-any.whl (468kB)
100% |################################| 471kB 1.1MB/s
Installing collected packages: six, MarkupSafe, Jinja2, Pygments, docutils, snowballstemmer, pytz, babel, alabaster, imagesize, requests, typing, sqlalchemy, whoosh, sphinxcontrib-websupport, colorama, Sphinx
Running setup.py install for MarkupSafe ... done
Running setup.py install for typing ... done
Running setup.py install for sqlalchemy ... done
Running setup.py install for Sphinx ... done
Successfully installed Jinja2-2.9.6 MarkupSafe-1.0 Pygments-2.2.0 Sphinx-1.7.dev20170506 alabaster-0.7.10 babel-2.4.0 colorama-0.3.9 docutils-0.13.1 imagesize-0.7.1 pytz-2017.2 requests-2.13.0 six-1.10.0 snowballstemmer-1.2.1 sphinxcontrib-websupport-1.0.0 sqlalchemy-1.1.9 typing-3.6.1 whoosh-2.7.4
Nota il prefisso git+
per l'URL.
- Clonare il repository usando
git
,mercurial
o altro strumento accettabile, preferibilmente uno strumento DVCS, e usa il percorso dipip install
/ to / cloned / repo - questo elabora entrambi i file require.text ed esegue i passi di configurazione e configurazione, puoi cambiare manualmente directory al tuo repository clonato ed eseguipip install -r requires.txt
e poipython setup.py install
per ottenere lo stesso effetto. I grandi vantaggi di questo approccio sono che mentre l'operazione di clonazione iniziale può richiedere più tempo del download di snapshot è possibile eseguire l'aggiornamento al più recente, nel caso di git:git pull origin master
e se la versione corrente contiene errori è possibile utilizzarepip uninstall
nome-pacchetto quindi utilizzare i comandigit checkout
per tornare indietro nella cronologia del repository alle versioni precedenti e riprovare.