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

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

Fonte: wiki.python.org

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.

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:

  1. 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.
  2. 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.

  1. Clonare il repository usando git , mercurial o altro strumento accettabile, preferibilmente uno strumento DVCS, e usa il percorso di pip 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 esegui pip install -r requires.txt e poi python 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 utilizzare pip uninstall nome-pacchetto quindi utilizzare i comandi git checkout per tornare indietro nella cronologia del repository alle versioni precedenti e riprovare.


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow