Per la predispozione di un ambiente di lavoro in Python abbiamo più vie. Possiamo procedere all'installazione dei singoli strumenti uno alla volta, o affidarci ad un ambiente completo già pronto come Anaconda. Entrambe le soluzioni hanno pro e contro:
- velocità di configurazione: probabilmente installare un ambiente unico risulta più veloce in quanto realizzabile in un'unica soluzione
tuttavia anche l'installazione dei singoli strumenti non sarà troppo complicata e dispersiva grazie ai tool di supporto che il mondo Python
offre inoltre si tratta di un'operazione che porterà via una quantità irrisoria di tempo se paragonata a tutto l'impegno che profonderemo nello
studio della Data Science; - semplicità: entrambe le soluzioni sono adatte al professionista ma chi si trova alle prime armi potrebbe trovare giovamento nel preferire una piattaforma unica
come Anaconda proprio per non dover affrontare lo studio dei singoli componenti nell'immediato e rimandare la personalizzazione del proprio
ambiente di lavoro ad un momento successivo quando, con l'esperienza, avrà imparato a fare le proprie scelte e maturato delle preferenze; - spazio disco: Anaconda offre tutto ciò che può servire al data scientist e molto di più infatti qualcosa che si nota subito è la dimensione del suo pacchetto
di installazione, circa mezzo Gigabyte, che una volta predisposto nel sistema operativo occuperà circa 3 GB. Potrebbe pertanto essere percepita come un impiego
eccessivo di spazio disco se rapportata ad un ambiente personalizzato dove si potrà scegliere i componenti uno ad uno; - preventiva disponibilità di Python: se si vuole preparare il proprio ambiente di lavoro sarà necessario installare il linguaggio Python a priori mentre Anaconda
rappresenta, in primis, una distribuzione Python pertanto porterà con sè anche l'ambiente di programmazione; - coerenza dell'installazione: tutti i tool nominati nella lezione precedente sono open source pertanto curati con costanza e dedizione da una folta community
di programmatori e coinvolti in un avanzamento continuo. Installare tali strumenti singolarmente potrebbe portare, in taluni casi, a dover curare personalmente la
scelta delle versioni da adottare e la relativa consistenza complessiva dell'ambiente. Quando ci si affida ad una soluzione unica come Anaconda si ha di fronte, al contrario,
un unico ecosistema studiato per il perfetto equilibrio delle sue componenti. Tuttavia, questo discorso si lega a quanto detto prima per l'esperienza dell'utente:
il neofita potrebbe non curarsi di tali aspetti scegliendo una soluzione completa mentre chi già una propria esperienza nel settore potrebbe affrontare eventuali
incongruenze al momento del loro manifestarsi.
Prima di procedere è importante ricordare che per l'installazione degli strumenti ed il loro aggiornamento ci si affida a dei package manager ovvero client
di repository remoti che sono in grado di prelevare i pacchetti di cui abbiamo bisogno eventualmente relativi ad una specifica versione, predisporli nella nostra macchina
curandosi anche del set completo delle loro dipendenze. I package manager sono fondamentali indipendentemente da quale approccio si scelga per la creazione dell'ambiente di lavoro e
ve ne sono due fondamentali per Python:
- pip è il package manager di default per Python e viene
generalmente (non sempre) fornito contestualmente all'ambiente di programmazione. Fornisce accesso al maggior repository di librerie che risponde
al nome di PyPI (Python Package Index); - conda è un package manager multilinguaggio, scelta preferenziale in Anaconda, che
offre accesso ai repository di Anaconda Cloud. Ha un'offerta più ristretta rispetto a quella di PyPI ma
comunque abbondante e di altissimo livello incentrata per lo più sulle tematiche della programmazione scientifica.
In entrambi i casi, sarà estremamente comodo installare pacchetti infatti sarà sufficiente avere il package manager pronto nel sistema
e richiedere con le necessarie parole chiave il tool di cui si ha bisogno. Ad esempio, installare NumPy potrà essere fatto con pip
usando:
pip install numpy
mentre con conda sarà:
conda install -c conda-forge numpy
Si consideri inoltre che in contesti del genere è molto utile fare uso di ambienti virtuali ovvero cartelle contenenti un singolo ambiente di lavoro, con tanto di librerie,
interpreti e package manager totalmente autonomi dal resto del sistema. Esistono per questo varie soluzioni in Python: conda li offre già come propria
feature non necessitando di installazioni ulteriori mentre tramite pip viene spesso adottato il pacchetto VirtualEnv con il medesimo scopo.
In entrambi i casi avremo una cura totale delle dipendenze. Entriamo ora nello specifico ma precisiamo subito che ancora
non tratteremo dell'installazione dei framework per il Deep Learning che affronteremo nell'apposita sezione.
Installazione dei singoli componenti
Quando si desidera installare i singoli strumenti si consideri che si può optare per più strade. Si può procedere per un'installazione dal basso
predisponendo prima i framework più basilari e poi quelli che su di essi si basano (ad esempio, prima NumPy e successivamente Pandas verificando la
correttezza di ogni strato) o procedere con un approccio top-down ovvero partendo dall'installazione delle librerie caratterizzate da più dipendenze
in modo che l'installazione dell'una attivi anche quella delle altre. Ad esempio, la sola installazione di Seaborn:
pip install seaborn
porterà alla contestuale installazione di Pandas, NumPy, Matplotlib nonché ulteriori librerie. Inoltre, un punto di riferimento importante per
l'approntamento dell'ambiente è il progetto SciPy che rappresenta un ecosistema Python connotato dalle principali librerie scientifiche e che si ritrova
attorno al sito SciPy.org.
Anaconda e miniconda
Se si sceglie la strada di Anaconda la si può percorrere in due modalità diverse. Si può ricorrere al pacchetto completo disponibile
anche come Individual Edition, l'edizione open source. Da qui
si potrà procedere allo scaricamento del pacchetto per il proprio sistema operativo.
Dopo l'installazione, al suo avvio, Anaconda offrirà un pannello detto Navigator - visibile nella seguente figura - dal quale si potranno avviare
strumenti quali IPython, i notebook di Jupyter (offerti anche nell'ambiente JupyterLab) nonché l'IDE Spyder.
Il Navigator rappresenta un po' il centro di controllo di Anaconda e da qui si potrà procedere anche all'installazione di ulteriori strumenti
organizzati in differenti ambienti virtuali. Si noti inoltre che dalla sezione Environments sono disponibili i collegamenti per avviare sia le console di
Python e IPython sia il terminale di sistema: qualora si volesse fare uso delle librerie installate via Anaconda è sempre meglio accedere a tali elementi da questi link piuttosto
che dai normali collegamenti del sistema operativo.
Esiste un secondo modo per avere a disposizione la duttilità di Anaconda con un minore consumo di spazio disco e consiste in miniconda, un
tool che può essere installato sui vari sistemi operativi e dal quale si potrà procedere ad una installazione più compatta e mirata di un ambiente di Data Science.
Al termine dell'installazione di miniconda si potrà avviare una console al cui interno si avrà già a disposizione il package manager conda che consentirà la predisposizione di
un ambiente di lavoro personale.