Installazione

In questa guida vedremo se e come installare Python, le librerie addizionali, il notebook Jupyter e infine la gestione degli ambienti virtuali.

A volte non serve nemmeno installare!

Volendo puoi programmare direttamente online con i seguenti servizi

NOTA 1: se vuoi provarne uno, ricordati sempre di controllare che sia Python 3 !

NOTA 2: Come per ogni servizio online, quando è offerto gratuitamente non abusarne. Se cerchi di processare un terabyte di dati al giorno senza pagare una sottoscrizione, rischi che ti neghino il servizio.

Python 3 su repl.it: permette di editare codice Python anche in modo collaborativo con altri utenti, e supporta anche librerie come Matplotlib.

Python Tutor: permette di eseguire una istruzione alla volta offrendo un’utile visualizzazione di cosa accade ‘sotto il cofano’

Google Colab: permette di editare in modo collaborativo fogli Jupyter e di salvarli sul Google Drive.

  • NOTA 1: potrebbe darsi che non riusciate ad accedere coi vostri account universitari (es. @studenti.unitn.it). In tal caso, usate account personali @gmail.com

  • NOTA 2: l’aspetto ‘collaborativo’ del Colab è cambiato nel corso del tempo, fate bene attenzione a cosa succede quando operate in due sullo stesso documento. Una volta (2017) le modifiche fatte da uno erano immediatamente viste dagli altri, ultimamente (2019) paiono visibili solo quando si salva - peggio, vanno a sovrascrivere eventuali modifiche fatti da altri.

Demo online di Jupyter: a volte funziona non sempre è disponibile. Se riesci ad accedere, ricordati di selezionare nel menù Kernel->Change kernel->Python 3

Installazione Python

Ci sono vari modi per installare Python 3 e le sue librerie: c’è la distribuzione ufficiale di Python ‘liscia’ come anche gestori di pacchetti (es. Anaconda) o ambienti preconfezionati (es. Python(x,y)) che forniscono sia Python più varie librerie extra. Inoltre, una volta completata l’installazione, Python 3 contiene un comando pip (a volte per python 3 si chiama pip3) che permette di installare in seguito da linea di comando eventuali librerie mancanti.

Il modo migliore per scegliere cosa installare dipende da quale sistema operativo si ha e cosa ci si intende fare. In questo libro useremo Python 3 e librerie scientifiche, quindi cercheremo di creare un ambiente adatto a supportare questo scenario.

Attenzione: Prima di installare roba a caso scaricata da internet, leggi bene questa guida!

Abbiamo cercato di renderla abbastanza generica, ma non essendoci stato possibile testare tutti i vari casi potrebbero insorgere dei problemi, se avete qualche dubbio chiedete ai mentor.

Attenzione: non sovrapporre distribuzioni di Python alla stessa versione !

Vista la varietà di metodi di installazione e il fatto che Python si trova già in molti programmi, può darsi che abbiate già Python installato senza saperlo, magari in versione 2, ma a noi serve la 3! Sovrapporre diversi ambienti Python con la stessa versione potrebbe causare problemi, di nuovo se avete qualche dubbio chiedete ai mentor.

Installazione Windows

Per Windows, ti consigliamo di installare la distribuzione Anaconda per Python 3.6 o maggiore, che oltre all’gestore di pacchetti nativo di Python pip, fornisce anche il più generico gestore di pacchetti da linea di comando conda.

Una volta installato, verifica che funzioni così:

  1. clicca sull’icona di Windows in basso a sinistra e cerca ‘Anaconda Prompt’. Dovrebbe apparire una console dove inserire comandi, con scritto qualcosa come C:\Users\David>. NOTA: per lanciare i comandi di Anaconda, usa solo questa console speciale. Se usie la console di default di Windows (cmd), Windows non sarà in grado di trovare Python.

  2. Nella console di Anaconda, scrivi

conda list

Dovrebbe apparire una lista di pacchetti installati, tipo

# packages in environment at C:\Users\Jane\AppData\Local\Continuum\Anaconda3:
#
alabaster                 0.7.7                    py35_0
anaconda                  4.0.0               np110py35_0
anaconda-client           1.4.0                    py35_0
...
numexpr                   2.5                 np110py35_0
numpy                     1.10.4                   py35_0
odo                       0.4.2                    py35_0
...
yaml                      0.1.6                         0
zeromq                    4.1.3                         0
zlib                      1.2.8                         0
  1. Prova Python3, scrivendo sempre nella console di Anaconda:

C:>  python

Dovrebbe apparire qualcosa tipo

Python 3.6.3 (default, Sep 14 2017, 22:51:06)
MSC v.1900 64 bit (Intel)[GCC 5.4.0 20160609] on win64
Type "help", "copyright", "credits" or "license" for more information.
>>>

Attenzione: Con Anaconda, devi scrivere python invece che python3!

Sei hai installato Anaconda per Python3, userà automaticamente la versione di Python corretta semplicemente scrivendo python. Se scrivi python3 riceverai un’errore di file non trovato !

Attenzione: Se hai Anaconda, usa sempre conda per installare i moduli Python ! Quindi se nelle istruzioni nei prossimi tutorial vedi scritto pip3 install qualcosa, dovrai usare invece conda install qualcosa

Installazione Mac

Per gestire al meglio le app installate sul Mac indipendentemente da Python, in genere conviene installare un cosiddetto gestore di pacchetti. Ce ne sono vari, e uno tra i più popolari su Mac è Homebrew. Quindi suggeriamo di installare prima Homebrew e poi tramite esso installare Python 3, più eventualmente in seguito altri componenti che ci interessano. In linea di massima, per l’installazione abbiamo tradotto qua in italiano e semplificato questa guida.

Attenzione: controlla se hai già un gestore di pacchetti !

Se hai già installato un gestore di pacchetti come per esempio Conda (nella distribuzione Anaconda), Rudix, Nix, Pkgsrc, Fink o MacPorts, forse Homebrew non ti serve e ti conviene usare quello che già hai. In questi casi, chiedi ai mentor. Se hai già Conda/Anaconda, può andar bene a patto di avere la versione per Python 3.

— 1 Apri il Terminale

Il terminale di MacOS è un’applicazione che puoi usare per accedere alla linea di comando. Come qualunque altra applicazione, la puoi trovare andando in Finder, navigando nella cartella Applicazioni, e quindi nella cartella Accessori. Da lì, fai doppio click sul Terminale per aprirlo come ogni altra applicazione. In alternativa, puoi usare Spotlight tenendo premuto i tasti Command e Spazio per trovare il Terminale scrivendone il nome nella barra che appare.

— 2 Installa Homebrew eseguendo nel terminale questo comando:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

— 3 Aggiungi /usr/local/bin al PATH

In questo passaggio dal nome inquietante, una volta che l’installazione di Homebrew è completata, ti assicurerai che vengano sempre sempre usate le applicazioni installate con Homebrew, invece che quelle che Mac OS X potrebbe selezionare automaticamente:

— 3.1 Apri un nuovo Terminale.

— 3.2 Da dentro il terminale, digita il comando

ls -a

Verrà visualizzata la lista di tutti i file presenti nella cartella della home. In questi file, verifica se esiste un file con il seguente nome: .profile (nota il punto all’inizio):

  • Se esiste: salta al punto seguente

  • Se non esiste, per crearlo digita il comando seguente:

    touch  $HOME/.profile
    

— 3.3 Apri con text edit il file .profile appena creato dando il comando:

open -e  $HOME/.profile

— 3.4 In text edit, aggiungi alla fine del file questa riga:

export PATH=/usr/local/bin:$PATH

— 3.5 Salva e chiudi sia Text Edit che il Terminale

— 4 Verifica che Homebrew sia installato correttamente, digitando in un nuovo Terminale:

brew doctor

Se non ci sono aggiornamenti da fare, il Terminale dovrebbe mostrare:

Your system is ready to brew.

Altrimenti, potresti vedere un warning che consiglia di eseguire un altro comando come brew update per assicurarti che l’installazione di Homebrew sia aggiornata.

— 5. Installa python3 (Ricordati il ‘3’ !):

brew install python3

Assieme a Python 3, Homebrew installerà anche il gestore di pacchetti interno di Python pip3 che useremo in seguito.

— 6 Verifica che Python3 sia installato correttamente. Eseguendo questo comando dovrebbe apparire la scritta “/usr/local/bin/python3”:

which python3

Dopodichè, prova a lanciare

python3

Dovresti vedere qualcosa di simile:

Python 3.6.3 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on mac
Type "help", "copyright", "credits" or "license" for more information.
>>>

Per uscire da Python, scrivi exit() e invio.

Installazione Linux

Fortunatamente, tutte le distribuzioni Linux sono già fornite con gestori di pacchetti per installare facilmente le applicazioni.

Per verificare l’installazione, prova a lanciare da terminale

python3

Dovresti vedere qualcosa di simile:

Python 3.6.3 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

Installare pacchetti

Si può estendere Python installando diversi pacchetti gratuiti. Il modo migliore per farlo, varia a seconda del sistema operativo e del gestore di pacchetti installato

ATTENZIONE: Andremo ad usare comandi di sistema. Se vedi >>> sulla riga dei comandi, vuol dire che sei dentro l’interprete Python e devi prima uscirne: per farlo, scrivi exit() e premi Invio.

In quello che segue, per provare vedere se il tutto funziona, al posto di NOMEPACCHETTO puoi scrivere requests che è una libreria per il web.

Se hai Anaconda:

  • clicca sull’icona di Windows in basso a sinistra e cerca ‘Anaconda Prompt’. Dovrebbe apparire una console dove inserire comandi, con scritto qualcosa come C:\Users\David>. (NOTA: per lanciare i comandi di Anaconda, usa solo questa console speciale. Se usi la console di default di Windows (cmd), Windows non sarà in grado di trovare Python)

  • Nella console scrivi conda install NOMEPACCHETTO

Se hai Linux/Mac (--user installa nella propria home) apri il Terminal e dai questo comando:

  • python3 -m pip install --user NOMEPACCHETTO

  • NOTA: Se ricevi errori che dicono che il comando python3 non viene trovato, togli il 3 dopo python

INFO: volendo esiste anche un comando di sistema pip (o pip3 a seconda del sistema). Lo puoi chiamare direttamente con pip install --user NOMEPACCHETTO

Noi installiamo invece con comandi del tipo python3 -m pip install --user NOMEPACCHETTO per uniformità e per essere sicuri di installare pacchetti per la versione 3 di Python

Notebook Jupyter

Eseguire il notebook Jupyter

Un editor comodo che si può usare per Python è Jupyter:

  • Se hai installato Anaconda, dovresti trovarlo già nel menu di sistema e anche nell’Anaconda Navigator.

  • Anche se non hai installato Anaconda, comunque cercalo nel menu di sistema chissamai che per qualche caso fortuito sia già installato

  • Se non lo trovi nel menu di sistema, potresti comunque averlo dalla linea di comando,

Prova se funzionano:

jupyter notebook

Oppure, in alternativa

python3 -m notebook

ATTENZIONE: jupyter NON è un comando Python, bensì un comando di sistema.

Se vedi >>> sulla riga dei comandi vuol dire che devi prima uscire dall’interprete Python scrivendo exit() e premendo Invio!

ATTENZIONE: Se Jupyter non è installato appariranno dei messaggi di errore, in questo caso non ti spaventare e vai all’installazione.

Un browser dovrebbe aprirsi automaticamente con Jupyter, e nella console dovresti vedere dei messaggi come qua sotto. Nel browser dovresti vedere i file nella cartella da cui hai lanciato Jupyter. Se non parte nessun browser ma vedi un messaggio come qua sotto, allora copia l’indirizzo che vedi in un browser internet, preferibilmente Chrome, Safari o Firefox

$ jupyter notebook
[I 18:18:14.669 NotebookApp] Serving notebooks from local directory: /home/da/Da/prj/softpython/prj
[I 18:18:14.669 NotebookApp] 0 active kernels
[I 18:18:14.669 NotebookApp] The Jupyter Notebook is running at: http://localhost:8888/?token=49d4394bac446e291c6ddaf349c9dbffcd2cdc8c848eb888
[I 18:18:14.669 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 18:18:14.670 NotebookApp]

    Copy/paste this URL into your browser when you connect for the first time,
    to login with a token:
        http://localhost:8888/?token=49d4394bac446e291c6ddaf349c9dbffcd2cdc8c848eb888

ATTENZIONE 1: in questo caso l’indirizzo è http://localhost:8888/?token=49d4394bac446e291c6ddaf349c9dbffcd2cdc8c848eb888, ma il tuo sarà sicuramente diverso!

ATTENZIONE 2: Mentre il server Jupyter è attivo, non puoi mettere comandi nel terminale !

Nella console vedi l’output del server di Jupyter, che è attivo e in un certo senso ‘ha preso il controllo’ del terminale. Questo significa che se anche scrivi dei comandi dentro il terminale, questi non verranno eseguiti!

Salvare i fogli Jupyter

Puoi salvare il foglio corrente in Jupyter premendo Control-S mentre sei nel browser.

ATTENZIONE: NON APRIRE LO STESSO DOCUMENTO IN PIU’ TAB !!

Fai attenzione a non aprire lo stesso notebook in più tab, modifiche su tab differenti possono sovrascriversi a caso ! Per evitare queste spiacevolissime situazioni, assicurati di avere una sola tab per docmento. Se apri accidentalmente lo stesso notebook in tab differenti, semplicemente chiudi la tab di troppo.

Salvataggi automatici

Le modifiche ai notebook sono automaticamente salvate dopo qualche minuto.

Spegnere il server di Jupyter

Prima di chiudere il server di Jupyter, ricordati di salvare nel browser i fogli modificati sinora.

Per chiudere correttamente Jupyter, non chiudere brutalmente il terminale. Piuttosto, nel terminale da dove lo hai lanciato premi Control-c, dovrebbe apparirti questa domanda, a cui devi rispondere y (se non rispondi entro 5 secondi, poi dovrai ripremere Control-c perchè ti venga rifatta la domanda):

Shutdown this notebook server (y/[n])? y
[C 11:05:03.062 NotebookApp] Shutdown confirmed
[I 11:05:03.064 NotebookApp] Shutting down kernels

Installare il notebook Jupyter - tutti i sistemi operativi

Se non sei riuscito a trovare e/o far partire Jupyter, probabilmente vuol dire che bisogna installarlo !

Puoi provare ad installare jupyter con pip (il gestore di moduli nativo di Python).

Per installare, esegui questo comando:

python3 -m pip install --user jupyter -U

Una volta installato, segui la sezione Eseguire il notebook Jupyter

ATTENZIONE: NON serve installare Jupyter dentro ambienti virtuali.

Jupyter è da considerarsi un’applicazione a livello di sistema, dovrebbe essere indipendente dagli ambienti virtuali. Se sei all’interno di un ambiente virtuale (per es. la linea di comando inizia con una scritta tra parentesi tipo (myprj)), esci dall’ambiente scrivendo deactivate

HELP: Se hai problemi ad installare Jupyter, intanto che aspetti aiuto puoi provare la versione dimostrativa online (nota che non è sempre disponibile) o Google Colab

Fare progetti Python con gli ambienti virtuali

ATTENZIONE: Se sei alle prime armi con Python, puoi saltare questa sezione.

La dovresti leggere se hai già fatto progetti personali in Python che vuoi evitare di compromettere, oppure quando vuoi fare un progetto da consegnare a qualcuno.

Quando cominciamo un nuovo progetto in Python, di solito ci accorgiamo in fretta che bisogna estendere Python con delle librerie particolari, per esempio per disegnare grafici. Non solo, potremmo anche voler installare dei programmi Python non scritti da noi che a loro volta avranno bisogno delle loro librerie per funzionare.

Ora, potremmo installare tutte queste librerie extra in un unico calderone per tutto il computer, ma ogni progetto può richiedere le sue specifiche versioni di ogni libreria, e a volte potrebbe non gradire le versioni installate da altri progetti. Peggio ancora, potrebbe aggiornare automaticamente librerie usate da vecchi progetti, rendendo il codice dei vecchi progetti non più eseguibile. Quindi è PRATICAMENTE NECESSARIO separare per bene ogni progetto e le sue librerie da quelle degli altri: a tal fine si può creare un cosiddetto virtual environment.

Creare ambienti virtuali

  • Se hai installato Anaconda, per creare ambienti virtuali ti conviene usare il suo gestore di pacchetti conda. Supponendo che vogliamo chiamare il nostro progetto myprj (ma potrebbe essere un nome qualunque), da mettere in una cartella dallo stesso nome myprj, per creare un ambiente virtuale possiamo dare questo comando:

    conda create -n myprj
    

    Il comando potrebbe chiederti di scaricare dei pacchetti, dai pure conferma.

  • Se *non* hai installato Anaconda, per creare ambienti virtuali ti conviene usare il modulo nativo di Python venv:

    python3 -m venv myprj
    

Entrambi i metodi creano la cartella myprj e la riempiono con tutti i file Python necessari per avere un progetto completamente isolato dal resto del computer. Ma adesso, come possiamo dire a Python che vogliamo lavorare proprio con quel progetto lì? Dobbiamo attivare l’ambiente come segue.

Attivare un ambiente virtuale

Per attivare l’ambiente virtuale, dobbiamo usare comandi diversi a seconda del sistema operativo (ma sempre dal terminale)

Su Linux & Mac (senza Anaconda):

source myprj/bin/activate

Attivare environment su Windows con Anaconda:

activate myprj

Una volta che l’ambiente è attivato, nel prompt dei comandi dovremmo vedere il nome dell’ambiente (in questo caso myprj) in parentesi tonde all’inizio della riga:

(myprj) directory/corrente >

Il prefisso ci fa sapere che l’ambiene myprj è correntemente attivo, perciò tutti i comandi Python che daremo useranno le impostazioni e le librerie di quell’ambiente.

Nota: dentro l’ambiente virtuale, si può usare il comando python invece di python3, e pip invece di pip3, ma noi consigliamo comunque di essere espliciti e aggiungere sempre 3 così da evitare possibili confusioni.

Disattivare un ambiente:

Scrivere nella console il comando deactivate. Una volta disattivato l’ambiente, il nome dell’ambiente (myprj) all’inizio del prompt dovrebbe scomparire.

Eseguire gli ambienti da dentro Jupyter

Come abbiamo detto in precedenza, Jupyter è un’applicazione a livello di sistema, quindi dovrebbe esserci uno e un solo Jupyter. Ciononostante, durante l’esecuzione di Jupyter, potremmo voler eseguire i nostri comandi Python in un particolare ambiente Python. Per fare ciò, dobbiamo configurare Jupyter perchè usi l’ambiente desiderato. Nella terminologia di Jupyter, le configurazioni si chiamano kernel: esse definiscono i programmi lanciati da Jupyter (siano essi versioni di Python o anche altri linguaggi, tipo R). Il kernel corrente per un foglio è visibile in alto a destra. Per avere il kernel che vogliamo, ci sono diversi modi:

Se hai Anaconda

Jupyter dovrebbe essere disponibile nel Navigator. Se nel Navigator abiliti un environment (per es per Python 3), quando poi lanci Jupyter e crei un foglio dovresti avere l’ambiente desiderato attivo, o quantomeno poter scegliere un kernel con quell’ambiente.

Se non hai Anaconda

In questo caso, la procedura è un po’ più complicata:

— 1 Dal Terminale, attiva il tuo ambiente

— 2 Crea un kernel Jupyter:

python3 -m ipykernel install --user --name myprj

NOTA: qua myprj è il nome del kernel Jupyter. Usiamo lo stesso nome dell’ambiente solo per questioni di praticità.

— 3 Disattiva il tuo ambiente, lanciando

deactivate

A questo punto, ogni volta che lanci Jupyter, se tutto è andato bene nella voce ‘Kernel’ dei notebook dovresti poter selezionare il kernel che hai appena creato (in questo esempio, avrebbe il nome myprj)

NOTA: il passaggio di creazione del kernel va fatto una sola volta per progetto

NOTA: Non serve attivare l’ambiente prima di lanciare Jupyter!

Durante l’esecuzione di Jupyter semplicemente seleziona il kernel desiderato. Ciononostante, conviene eseguire Jupyter dalla cartella del nostro ambiente virtuale, così vedremo tutti i file del progetto nella home di Jupyter.

Approfondimenti

Per approfondimenti su come usare editor diversi da Jupyter e l’architettura di Python, puoi leggere il foglio Strumenti e script.