Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "andreas-xavier/Prova2"
Differenze tra le versioni 60 e 71 (in 11 versioni)
Versione 60 del 20/03/2023 10.55.14
Dimensione: 6672
Commento: è
Versione 71 del 23/07/2024 19.18.40
Dimensione: 9252
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 6: Linea 6:
<<Informazioni(forum="https://forum.ubuntu-it.org/viewtopic.php?f=46&t=631491"; rilasci="22.04")>> <<Informazioni(forum="https://forum.ubuntu-it.org/viewtopic.php?f=46&t=631491"; rilasci="24.04 22.04")>>
Linea 13: Linea 13:
I pacchetti vengono reperiti da '''PyPI''' ('''Python Package Index'''). Quest'ultimo è un repository globale dove vengono archiviati migliaia di progetti e programmi relativi a Python, per essere quindi gestiti e organizzati in base alle versioni dei pacchetti e alle loro dipendenze. Risulta molto utile per installare facilmente svariato software basato su '''Python''', come moduli, librerie, frameworks e tanto altro (strumenti per sviluppo software, ricerca scientifica, svago ecc.). I pacchetti vengono reperiti da '''PyPI''' ('''Python Package Index'''). Quest'ultimo è un repository globale dove vengono archiviati migliaia di progetti e programmi relativi a Python, per essere quindi gestiti e organizzati in base alle versioni dei pacchetti e alle loro dipendenze.
Linea 15: Linea 15:
= Avvertenze e consigli generali =

'''pip''' risulta molto utile per installare facilmente svariato software basato su '''Python''', come moduli, librerie, frameworks e tanto altro (strumenti per sviluppo, ricerca scientifica, svago ecc.).

Inoltre '''pip''' può essere usato per installare alcuni programmi come alternativa alle consuete modalità di [[AmministrazioneSistema/InstallareProgrammi|installazione]] ('''apt''', '''snap''', da sorgenti ecc.). Tuttavia utilizzare pip a livello di sistema è __altamente scnsigliato__. Questo perché, essendo molti programmi di Ubuntu scritti in Python (fra cui componenti essenziali del sistema), l'eventuale presenza di versioni diverse potrebbe provocare problemi di dipendenze e/o esecuzione, rendendo Ubuntu altamente instabile o non funzionante.

Si consiglia quindi questo utilizzo di pip soltanto in ambienti "protetti", quali:
 * [[Virtualizzazione|macchine virtuali]]
 * Python virtual environments
 * sistemi/macchine dedicate, non destinate alla produttività, ma per scopi di istruzione, test o sviluppo, ecc.

Per creare un Virtual Environment digitare nel ternminale:{{{
python3 -m venv <nome della directory>
}}}
Per attivarlo utilizzare il comando:{{{
source <nome della directory>/bin/activate
{{{#!wiki tip
Spesso alcuni pacchetti di cui si potrebbe aver bisogno sono disponibili nei [[Repository|repository]] di Ubuntu. Si consiglia pertanto di effettuare prima di tutto una [[AmministrazioneSistema/InstallareProgrammi/Apt#Altre_operazioni|ricerca]] tramite '''apt'''.
Linea 33: Linea 19:
{{{#!wiki note
A partire da Ubuntu 23.04 l'ambiente base di Python viene considerato ''externally managed'', quindi non consente installazioni a livello utente e/o di sistema. Per maggiori informazioni consultare [[https://peps.python.org/pep-0668/|questa pagina]].
= Python virtual environments =

'''pip''' potrebbe essere usato per installare alcuni programmi scritti in Python come alternativa alle consuete modalità di [[AmministrazioneSistema/InstallareProgrammi|installazione]] ('''apt''', '''snap''', da sorgenti ecc.). Tuttavia:
 * spesso quando si lavora ad un progetto si potrebbe avere bisogno di pacchetti python non forniti dalla distribuzione in uso, oppure disponibili in un'altra versione;
 * molte parti delle distribuzioni GNU/Linux sono scritti in Python (fra cui componenti importanti del sistema), quindi l'utilizzo di programmi installati con pip potrebbe provocare vari conflitti o problemi, rendendo il sistema altamente instabile o non funzionante.

Per questi motivi è previsto l'utilizzo di ambienti protetti, i ''[[#venv|Python virtual environments]]'', in cui poter operare senza creare conflitti con i pacchetti python già installati nel sistema operativo. A tal proposito in Ubuntu 23.04 e successivi non sono consentite installazioni di pacchetti Python a livello di sistema (per maggiori informazioni si veda questo [[#problemi|paragrafo]]).

<<Anchor(venv)>>
= Creazione di un ambiente virtuale =

Per creare un ambiente virtuale, procedere come descritto di seguito.

 0. Per aggiungere il modulo `venv`, [[AmministrazioneSistema/InstallareProgrammi|installare]] il pacchetto [[apt://python3-venv|python3-venv]].
 0. Per creare una cartella di destinazione digitare nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
python3 -m venv nome_della_directory
}}}
 sostituendo `nome_della_directory` con il nome desiderato.
 0. Attivare l'ambiente virtuale con il comando:{{{
source nome_della_directory/bin/activate
}}}
 sostituendo `nome_della_directory` con il nome desiderato.

Una volta attivato, la shell in uso punterà alla cartella creata. Se ad esempio si crea la cartella `il_mio_progetto` verrà restituito un output simile al seguente:{{{
(il_mio_progetto) $
Linea 37: Linea 46:
{{{#!wiki important
Evitare di lanciare pip con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]].
}}}
Sarà quindi possibile installare e aggiornare pacchetti utilizzando '''pip'''.
Linea 47: Linea 54:
Python 3.10.6 Python 3.10.12
Linea 54: Linea 61:
{{{#!wiki tip
È disponibile per l'installazione anche il pacchetto ''python-pip'', di riferimento per Python2. Si incoraggia tuttavia l'utilizzo della versione 3 (per maggiori informazioni consultare [[Programmazione/Python#Versioni_Python_2_e_3|questa pagina]].
{{{#!wiki note
In Ubuntu 22.04 è disponibile per l'installazione anche il pacchetto ''python-pip'', di riferimento per Python2. Si raccomanda tuttavia l'utilizzo della versione 3, poiché per la versione precedente non sono garantiti aggiornamenti di sicurezza (per maggiori informazioni consultare [[Programmazione/Python#Versioni_Python_2_e_3|questa pagina]]).
In caso di utilizzo di pip con Python 2, tutti i comandi vanno eseguiti digitando `pip` al posto di `pip3`.
Linea 62: Linea 70:
|| '''pip3 search''' ''termine_di_ricerca'' || Cerca su '''PyPI''' i pacchetti relativi al termine di ricerca inserito. ||
Linea 76: Linea 83:
A differenza di apt, pip non supporta l'autocompletamento. Pertanto occorre digitare il nome esatto del pacchetto da installare, facendo attenzione ad evitare errori di battitura durante la digitazione. A differenza di apt, pip non supporta l'autocompletamento. Pertanto occorre digitare il nome esatto del pacchetto da installare, facendo attenzione ad evitare errori di battitura durante la digitazione.<<BR>>
Evitare di lanciare pip con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]].
Linea 116: Linea 124:
<<Anchor(problemi)>>
= Soluzione dei problemi =

== error: externally managed environment (Ubuntu 23.04 e successivi) ==

A partire da Ubuntu 23.04 operazioni al di fuori dell'ambiente base di Python sono considerate ''externally managed'', quindi non consente installazioni a livello utente e/o di sistema. Per maggiori informazioni consultare [[https://peps.python.org/pep-0668/|questa pagina]].

È possibile aggirare questa limitazione adottando le procedure raccomandate, quali:
 * installare il pacchetto tramite '''apt''', quando disponibile.
 * [[#venv|creazione di un ambiente virtuale]].
 * utilizzo di '''pipx''': è uno strumento alternativo a '''pip''' che permette di installare ed eseguire applicazioni Python in ''isolated environments'', garantendo una certa sicurezza. '''pipx''' infatti crea automaticamente un ambiente virtuale per ogni applicazione installata, generando contestualmente un collegamento nella cartella `.local/bin` dell'utente (quindi non a livello di sistema). Per utilizzare lo strumento [[AmministrazioneSistema/InstallareProgrammi|installare]] il pacchetto [[apt://pipx|pipx]]. Per il suo utilizzo consultare la [[https://pypa.github.io/pipx/docs/|documentazione]] del progetto.
 * opzione '''--break-system-packages''': è un'opzione che permette a '''pip''' di forzare l'installazione a livello di sistema, come nel seguente esempio:{{{
pip install arrow --break-system-packages
}}}
 {{{#!wiki important
Questa opzione è potenzialmente pericolosa; __non__ usarla in ambienti di produttività se non si sono adottate le dovute precauzioni.
}}}
Linea 123: Linea 149:
 * [[https://pypa.github.io/pipx/|pipx]] (strumento per installare ed eseguire applicazioni Python in ''isolated environments'')  * [[https://pypa.github.io/pipx/|pipx]]


Attenzione! Questa è una Pagina di prova. Le informazioni riportate potrebbero essere incomplete, errate e potenzialmente pericolose. Per contribuire alla realizzazione di questa pagina consultare la discussione di riferimento.

Guida verificata con Ubuntu: 22.04 24.04

Problemi in questa pagina? Segnalali in questa discussione

Introduzione

In questa guida sono descritte le istruzioni per installare pip su Ubuntu e derivate, nonché nozioni generali sul suo utilizzo (per informazioni più specifiche si rimanda ai link di approfondimento).

pip (acronimo di Pip Installs Packages) è uno strumento a linea di comando che permette di installare software scritto in Python.
Risulta molto utile per installare facilmente svariato software basato su Python, come moduli, librerie, frameworks e tanto altro (strumenti per sviluppo software, ricerca scientifica, svago ecc.). I pacchetti vengono reperiti da PyPI (Python Package Index). Quest'ultimo è un repository globale dove vengono archiviati migliaia di progetti e programmi relativi a Python, per essere quindi gestiti e organizzati in base alle versioni dei pacchetti e alle loro dipendenze.

Spesso alcuni pacchetti di cui si potrebbe aver bisogno sono disponibili nei repository di Ubuntu. Si consiglia pertanto di effettuare prima di tutto una ricerca tramite apt.

Python virtual environments

pip potrebbe essere usato per installare alcuni programmi scritti in Python come alternativa alle consuete modalità di installazione (apt, snap, da sorgenti ecc.). Tuttavia:

  • spesso quando si lavora ad un progetto si potrebbe avere bisogno di pacchetti python non forniti dalla distribuzione in uso, oppure disponibili in un'altra versione;
  • molte parti delle distribuzioni GNU/Linux sono scritti in Python (fra cui componenti importanti del sistema), quindi l'utilizzo di programmi installati con pip potrebbe provocare vari conflitti o problemi, rendendo il sistema altamente instabile o non funzionante.

Per questi motivi è previsto l'utilizzo di ambienti protetti, i Python virtual environments, in cui poter operare senza creare conflitti con i pacchetti python già installati nel sistema operativo. A tal proposito in Ubuntu 23.04 e successivi non sono consentite installazioni di pacchetti Python a livello di sistema (per maggiori informazioni si veda questo paragrafo).

Creazione di un ambiente virtuale

Per creare un ambiente virtuale, procedere come descritto di seguito.

  1. Per aggiungere il modulo venv, installare il pacchetto python3-venv.

  2. Per creare una cartella di destinazione digitare nel terminale:

    python3 -m venv nome_della_directory

    sostituendo nome_della_directory con il nome desiderato.

  3. Attivare l'ambiente virtuale con il comando:

    source nome_della_directory/bin/activate

    sostituendo nome_della_directory con il nome desiderato.

Una volta attivato, la shell in uso punterà alla cartella creata. Se ad esempio si crea la cartella il_mio_progetto verrà restituito un output simile al seguente:

(il_mio_progetto) $

Sarà quindi possibile installare e aggiornare pacchetti utilizzando pip.

Installazione

  1. Verificare la versione di Python installata e l'assenza di problemi digitando nel terminale:

    python3 --version

    L'output sarà simile al seguente:

    Python 3.10.12
  2. In caso di assenza di errori, installare il pacchetto python3-pip.

  3. Per verificare la versione di pip3 installata digitare:

    pip3 --version

In Ubuntu 22.04 è disponibile per l'installazione anche il pacchetto python-pip, di riferimento per Python2. Si raccomanda tuttavia l'utilizzo della versione 3, poiché per la versione precedente non sono garantiti aggiornamenti di sicurezza (per maggiori informazioni consultare questa pagina). In caso di utilizzo di pip con Python 2, tutti i comandi vanno eseguiti digitando pip al posto di pip3.

Utilizzo

Comandi principali

pip3 install nome_pacchetto

Installa un pacchetto desiderato.

pip3 install --upgrade nome_pacchetto

Aggiorna un pacchetto desiderato.

pip3 uninstall nome_pacchetto

Rimuove un pacchetto desiderato.

pip3 show nome_pacchetto

Mostra le informazioni disponibili su un pacchetto installato.

pip3 list

Elenca i pacchetti installati.

pip3 freeze

Elenca i pacchetti installati nei formati richiesti.

pip3 check

Controlla lo stato delle dipendenze dei pacchetti installati.

pip3 help

Mostra informazioni sull'uso di pip, fra cui l'elenco dei principali comandi e delle opzioni.

Per l'utilizzo delle opzioni, del file requirements.txt, di wheel, delle configurazioni avanzate e altre funzionalità si rimanda a questa guida.

A differenza di apt, pip non supporta l'autocompletamento. Pertanto occorre digitare il nome esatto del pacchetto da installare, facendo attenzione ad evitare errori di battitura durante la digitazione.
Evitare di lanciare pip con i privilegi di amministrazione.

Di seguito sono riportati ulteriori esempi di utilizzo:

  • Installare specifiche versioni dei pacchetti:

    pip3 install nome_pacchetto==N

    dove N sta per la versione del pacchetto, come nel seguente esempio:

    pip3 install Django==4.1.7

    oppure versioni inferiori/superiori/uguali ad una specifica versione, come nel seguente esempio:

    pip3 install Django>=4.1.1
  • Installare versioni in sviluppo:

    pip3 install --pre nome_pacchetto
  • Installare un pacchetto salvato in locale:

    pip3 install ./Percorso/File/nome_pacchetto.tar.gz
  • Mostrare in una lista incolonnata i pacchetti che hanno versioni più recenti rispetto a quelle presenti nel sistema:

    pip3 list --outdated --format columns
  • Mostrare informazioni sull'utilizzo di un determinato comando:

    pip3 <comando> -h

    come nel seguente esempio:

    pip3 list -h

Aggiornamento

Questa operazione è fortemente sconsigliata agli utenti poco esperti, poiché potrebbe rendere non utilizzabile pip senza opportune modifiche alle configurazioni del programma. Per lo stesso motivo è opportuno ignorare eventuali consigli di aggiornamento nell'ouput di pip, simili al seguente: You should consider upgrading via the 'pip install --upgrade pip' command.

Per aggiornare pip digitare nel terminale il comando:

pip3 install --upgrade pip

Soluzione dei problemi

error: externally managed environment (Ubuntu 23.04 e successivi)

A partire da Ubuntu 23.04 operazioni al di fuori dell'ambiente base di Python sono considerate externally managed, quindi non consente installazioni a livello utente e/o di sistema. Per maggiori informazioni consultare questa pagina.

È possibile aggirare questa limitazione adottando le procedure raccomandate, quali:

  • installare il pacchetto tramite apt, quando disponibile.

  • creazione di un ambiente virtuale.

  • utilizzo di pipx: è uno strumento alternativo a pip che permette di installare ed eseguire applicazioni Python in isolated environments, garantendo una certa sicurezza. pipx infatti crea automaticamente un ambiente virtuale per ogni applicazione installata, generando contestualmente un collegamento nella cartella .local/bin dell'utente (quindi non a livello di sistema). Per utilizzare lo strumento installare il pacchetto pipx. Per il suo utilizzo consultare la documentazione del progetto.

  • opzione --break-system-packages: è un'opzione che permette a pip di forzare l'installazione a livello di sistema, come nel seguente esempio:

    pip install arrow --break-system-packages

    Questa opzione è potenzialmente pericolosa; non usarla in ambienti di produttività se non si sono adottate le dovute precauzioni.

Ulteriori risorse


CategoryHomepage