GNU/Linux >> Linux Esercitazione >  >> Linux

Pipenv - Lo strumento di packaging Python ufficialmente raccomandato

L'altro giorno abbiamo pubblicato una guida per principianti per gestire i pacchetti Python utilizzando PIP . In quella guida, abbiamo discusso come installare pip e come installare, aggiornare e disinstallare i pacchetti Python usando pip. Abbiamo anche discusso dell'importanza degli ambienti virtuali e di come creare un ambiente virtuale utilizzando gli strumenti venv e virtualvnv. Oggi impareremo a conoscere un altro gestore di pacchetti Python chiamato pipenv . È il nuovo strumento Python Packaging consigliato da Python.org. Può essere utilizzato per installare e gestire facilmente le dipendenze di Python senza dover creare ambienti virtuali. Pipenv crea e gestisce automaticamente virtualenv per i tuoi progetti. Aggiunge/rimuove anche i pacchetti dal tuo Pipfile mentre installi/disinstalla i pacchetti.

Perché Pipenv?

Pipenv risolve i seguenti problemi in tempo reale:

  • Non devi più creare un ambiente virtuale. Pipenv creerà automaticamente virtualenv per i tuoi progetti. Per dirla semplicemente, pip e virtualenv funzionano insieme.
  • Gestione di un requirements.txt può essere problematico, quindi Pipenv utilizza invece il prossimo Pipfile e Pipfile.lock, che è superiore per i casi d'uso di base.
  • È sicuro. Gli hash sono usati ovunque, sempre. Esponi automaticamente le vulnerabilità della sicurezza.
  • Visualizza il grafico delle dipendenze in qualsiasi momento.
  • Semplifica il flusso di lavoro di sviluppo caricando file .env.

Bene, iniziamo.

Installa Pipenv, lo strumento di pacchettizzazione Python ufficialmente raccomandato

Esistono molti modi per installare Pipenv. Vedremo due metodi ufficialmente consigliati.

1. Installazione di pipenv tramite pip

Il modo ufficiale consigliato è utilizzare pip . Assicurati di aver installato python e pip. In caso contrario, fare riferimento alla nostra precedente guida collegata al primo paragrafo di questo articolo.

Una volta installato pip, esegui il comando seguente per installare pipenv.

$ pip install --user pipenv

Questo comando installerà pipenv a livello utente (cioè non a livello di sistema). Se pipenv non è disponibile nella tua shell dopo averlo installato, potresti dover aggiungere la tua directory binaria della tua base di utenti al tuo PERCORSO. Se non sai qual è la tua base di utenti, esegui il seguente comando per scoprirlo:

$ python -m site --user-base

Vedrai un output simile a quello di seguito.

/home/sk/.local

Come puoi vedere nell'output sopra, la mia directory di base utente è /home/sk/.local e la directory binaria della mia base è /home/sk/.local/bin . Chiaro? Bene. Ora aggiungi questo al tuo PERCORSO. Per farlo, modifica il tuo ~/.profile file:

$ vi ~/.profile

Aggiungi questa riga alla fine:

export PATH="$HOME/.local/bin:$PATH"

Premi ESC chiave e digita :wq per salvare e uscire dal file. Quindi, esegui il comando seguente per rendere effettive le modifiche.

$ source ~/.profile

Infine, esegui il seguente comando:

$ pipenv --update

Per aggiornare pipenv in qualsiasi momento, esegui il comando seguente:

$ pip install --user --upgrade pipenv

2. Installazione di pipenv tramite pipsi

Pipsi è un potente strumento che ti consente di installare script Python in ambienti virtuali isolati.

Per installare pipsi, esegui:

$ curl https://raw.githubusercontent.com/mitsuhiko/pipsi/master/get-pipsi.py | python

Segui le istruzioni sullo schermo, dovrai aggiornare il tuo PERCORSO.

Una volta installato pipsi, esegui i seguenti comandi per installare pipenv:

$ pipsi install pew
$ pipsi install pipenv

Infine, esegui il seguente comando:

$ pipenv --update

Per aggiornare pipenv in qualsiasi momento, esegui:

$ pipsi upgrade pipenv

Gestisci i pacchetti Python usando Pipenv

Esegui 'pipenv' nella tua shell per visualizzare l'elenco dei comandi disponibili e delle opzioni generali.

$ pipenv

L'output di esempio sarebbe:

Installazione dei pacchetti

Crea un nuovo progetto o vai alla directory del progetto esistente.

$ mkdir myproject
$ cd myproject

Installa i pacchetti per il tuo progetto:

$ pipenv install requests

Quando ldi nella directory del tuo progetto (ovvero myproject in questo caso), vedrai due file:Pipfile e Pipfile.lock . Il Pipfile contiene informazioni sul pacchetto appena installato come nome, versione, ecc. Puoi usare questo Pipfile per tenere traccia di quali dipendenze il tuo progetto ha bisogno quando vuoi reinstallare o condividere il progetto con altri.

$ cat Pipfile

Inoltre, Pipfile.lock contiene le informazioni sul tuo sistema, tutte le dipendenze del pacchetto installato inclusa la loro versione e tutti gli hash per tutti i pacchetti installati e le relative dipendenze.

$ cat Pipfile.lock

Ora installa un altro pacchetto e controlla di nuovo il contenuto dei due file. Noterai che il Pidfile ora contiene due pacchetti. Inoltre, Pidfile.lock contiene tutte le dipendenze dei pacchetti installati inclusa la loro versione e tutti gli hash per tutti i pacchetti installati e le relative dipendenze. In parole povere, questi due file verranno aggiornati automaticamente ogni volta che installi un nuovo pacchetto.

Hai notato? Non ho creato ambienti virtuali. Pipenv ha creato automaticamente l'ambiente virtuale per il mio progetto. Ti chiedi dove sono archiviati i tuoi progetti? Basta eseguire questo comando per conoscere la posizione dell'ambiente virtuale.

$ pipenv --venv
/home/sk/.local/share/virtualenvs/myproject-x7-2XYPN

Per visualizzare i dettagli della home del tuo progetto, esegui:

$ pipenv --where
/home/sk/myproject

Come puoi in entrambi gli output, "/home/sk/myproject" è la home directory del mio progetto e "/home/sk/.local/share/virtualenvs/myproject-x7-2XYPN" è il mio ambiente virtuale.

Puoi "ls" nel tuo virtualenv per controllare cosa c'è dentro.

$ ls /home/sk/.local/share/virtualenvs/myproject-x7-2XYPN

Pacchetti di aggiornamento

Per aggiornare tutti i pacchetti, esegui:

$ pipenv update

Questo comando disinstallerà tutti i pacchetti e reinstallerà i pacchetti nelle ultime versioni compatibili.

Verifica dell'integrità di un pacchetto

Ti preoccupi se ci sono vulnerabilità di sicurezza nei pacchetti installati? Nessun problema! Pipenv ti copre le spalle. Per verificare l'integrità dei pacchetti, esegui il seguente comando:

$ pipenv check
Checking PEP 508 requirements…
Passed!
Checking installed package safety…
All good!

Il comando precedente verifica le vulnerabilità di sicurezza e i marcatori PEP 508 forniti nel Pipfile.

Visualizza il grafico delle dipendenze

Eseguiamo 'pipenv graph' e vediamo cosa succede.

$ pipenv graph

Come puoi vedere, questo comando mostra il grafico delle dipendenze.

Disinstalla un pacchetto

Per rimuovere un pacchetto, esegui:

$ pipenv uninstall requests
Un-installing speedtest-cli…
Uninstalling speedtest-cli-1.0.7:
 Successfully uninstalled speedtest-cli-1.0.7

Removing speedtest-cli from Pipfile…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
Updated Pipfile.lock (c23e27)!

Per disinstallare tutto, esegui:

$ pipenv uninstall --all
Un-installing all packages from virtualenv…
Found 1 installed package(s), purging…

Environment now purged and fresh!

Per maggiori dettagli, esegui:

$ pipenv -h

Oppure,

$ pipenv --man

Per quanto ho testato Pipenv è molto più facile da usare di pip. Poiché è ufficialmente raccomandato da Python.org, ora puoi eliminare del tutto venv e virtualenv durante l'installazione dei pacchetti Python.

Lettura consigliata:

  • Pipx:installa ed esegui applicazioni Python in ambienti isolati

Linux
  1. Come installare Python su Linux

  2. Come installare R 3.3.1 nella propria directory?

  3. Lo scopo del comando "installa"?

  4. Come installare la distribuzione Anaconda Python su Ubuntu 16.04

  5. Installa tkinter per Python

Come installare Python 3 su Windows 10

Installa Python 3 su Redhat 8

Come installare Scrapy uno strumento di scansione del Web in Ubuntu

Come installare il nuovo strumento di snapshot di Kali Linux, Unkaputtbar

Come installare la distribuzione Anaconda Python su Ubuntu 18.04

Postman su sistema Linux:il miglior strumento API per sviluppatori di software