Come installare Python in modo intelligente

Python è facile da usare, amichevole per i principianti e abbastanza potente da creare software robusto per quasi tutte le applicazioni. Ma è ancora un software come un altro, il che significa che può essere complesso da configurare e gestire.

In questo articolo vedremo come configurare Python nel modo giusto: come scegliere la versione appropriata, come evitare che più versioni si calpestino l'una sull'altra e come evitare tutti gli altri spigoli vivi e potenziali insidie ​​lungo il modo.

Scegli la giusta versione e distribuzione di Python

Per motivi di compatibilità con moduli di terze parti, è sempre più sicuro scegliere una versione di Python che è una delle principali revisioni rispetto a quella attuale .

Al momento della stesura di questo documento, Python 3.8.1 è la versione più recente. La scommessa sicura, quindi, è utilizzare l'ultimo aggiornamento di Python 3.7 (in questo caso, Python 3.7.6). Puoi sempre provare la versione più recente di Python in modo controllato, ad esempio in una VM o in una macchina di test, ma tornare indietro di una versione garantisce la migliore compatibilità con i comuni pacchetti Python di terze parti.

Python è disponibile anche in una varietà di distribuzioni, più o meno allo stesso modo di Linux. A differenza di Linux, però, Python offre un'edizione "ufficiale", gold standard, su cui puoi sempre fare affidamento: CPython, la versione fornita dalla Python Software Foundation su python.org. Ancora una volta, questa è la distribuzione più sicura e ampiamente compatibile, quella che nessuno viene licenziato per la raccolta. (Potresti voler esaminare altre distribuzioni Python in un secondo momento, poiché affrontano casi d'uso specifici che potresti avere, ma non li considereremo qui.)

Una scelta chiave che dovrai fare, specialmente su Windows, è se utilizzare la versione a 32 o 64 bit di Python. La risposta più probabile è 64 bit, per i seguenti motivi:

  • La maggior parte dei sistemi operativi moderni utilizza un'edizione a 64 bit di Python per impostazione predefinita. Gli utenti Windows possono eseguire edizioni a 32 bit di Python su Windows a 64 bit, ma con un leggero costo in termini di prestazioni. 
  • Python a 32 bit e le app a 32 bit in genere possono accedere solo a 4 GB di memoria alla volta. Le applicazioni a 64 bit non hanno questo limite, quindi molti strumenti di analisi dei dati e di apprendimento automatico per Python funzionano meglio nelle incarnazioni a 64 bit. Alcuni sono disponibili solo nelle versioni a 64 bit. 

L'unica volta in cui dovresti scegliere la versione a 32 bit di Python è se sei bloccato con una versione a 32 bit di Windows o se devi utilizzare un modulo di terze parti disponibile solo in un'edizione a 32 bit.

Installa Python su Windows in modo intelligente

Python si installa su Windows più o meno allo stesso modo di qualsiasi altra applicazione, tramite un programma di installazione che guida l'utente attraverso il processo di installazione.

Per impostazione predefinita, il programma di installazione di Python per Windows posiziona i suoi eseguibili nella AppDatadirectory dell'utente , in modo che non richieda autorizzazioni amministrative. Se sei l'unico utente sul sistema, potresti voler posizionare Python in una directory di livello superiore (ad esempio C:\Python3.7) per renderlo più facile da trovare. Il programma di installazione di Windows consente di specificare la directory di destinazione.

Scegli il giusto programma di installazione Python per Windows

Python.org offre una serie di diverse incarnazioni di Python per Windows. Oltre alle versioni a 32 bit ("x86") e 64 bit ("x86-64") già menzionate, è possibile scegliere tra il file zip incorporabile, il programma di installazione eseguibile e il programma di installazione basato sul web. Ecco di cosa si tratta:

  • Il programma di installazione eseguibile è solo un file .EXE che esegue il processo di installazione per Python. Questa è la scelta predefinita facile e quella più comunemente usata.
  • Il programma di installazione basato sul Web è lo stesso del programma di installazione eseguibile, tranne per il fatto che scarica separatamente i bit necessari per eseguire l'installazione. Ciò riduce drasticamente le dimensioni del programma di installazione effettivo, ma ovviamente richiede una connessione di rete.
  • Il file zip incorporabile è una copia minima e autonoma del runtime Python che si inserisce in una singola cartella senza dipendenze. È utile raggruppare quando si desidera distribuire manualmente un'app Python o quando è necessaria un'installazione Python rapida e una tantum per testare qualcosa al volo. Ma lo zip incorporabile non include  pipo nessuno degli altri strumenti utili forniti con un'installazione completa, quindi è solo per uso esperto.

Installa Python utilizzando un gestore di pacchetti per Windows

Un'altra opzione è quella di utilizzare uno dei sistemi di gestione dei pacchetti esistenti per Windows. NuGet, il gestore di pacchetti per .NET, offre Python nel suo repository. Tuttavia, Python viene fornito principalmente per utilizzarlo come componente in un'applicazione .NET, non come un modo per installare un'istanza standalone di Python per uso generale. Probabilmente troverai la tua istanza Python più facile da gestire se installi Python in modo regolare. 

Chocolatey, un sistema di gestione dei pacchetti Windows più generale, offre anche Python. Chocolatey è un modo conveniente per eseguire il programma di installazione di Python e tenere traccia della presenza del runtime del linguaggio Python nel sistema e quindi una scelta migliore di NuGet. Tuttavia, è meglio evitare di mescolare e abbinare le installazioni Chocolatey e le installazioni regolari di Python sullo stesso sistema.

Installa Python su Linux in modo intelligente

Poiché le distribuzioni Linux differiscono in modo significativo, il modo tipico per installare Python su Linux è utilizzare il gestore di pacchetti della distribuzione specifica. Ubuntu e Fedora, ad esempio, hanno procedure completamente diverse per l'installazione di Python. Su Linux (e MacOS), la directory di destinazione per l'installazione è generalmente predeterminata e basata sul numero di versione di Python, ad esempio /usr/bin/python3.Xsu Linux o /usr/local/opt/python/su Mac.

Un modo per evitare di affrontare le complessità dei gestori di pacchetti Linux è utilizzare un runtime Python containerizzato. I contenitori vengono eseguiti isolati dal resto del sistema, quindi non devi preoccuparti dei diversi runtime di Python che si calpestano a vicenda. Tuttavia, se il tuo flusso di lavoro non include già i contenitori, dovrai dedicare tempo ed energia per essere al passo con Docker. (Nota che puoi usare Python in contenitori anche su Windows.)

Anche uno strumento chiamato asdf-vm è utile qui. Puoi utilizzare asdf-vm per gestire più runtime Python su sistemi simili a Unix (Linux e MacOS) e più runtime per Node.js, Ruby, Elixir e molti altri linguaggi. Quindi, se ti ritrovi a destreggiarti tra versioni di altre cose oltre a Python, ti consigliamo di esaminare asdf-vm.

Installa Python su MacOS in modo intelligente

MacOS viene tradizionalmente fornito con una versione di Python installata, ma mai più recente di Python 2.7. Ciò ha creato problemi quando è arrivato Python 3, poiché le due versioni spesso erano in conflitto. La documentazione ufficiale di Python ha alcune note in tal senso, ma non fornisce consigli più dettagliati che assicurarsi di utilizzare il percorso corretto per l'istanza di Python che si desidera.

Un modo comune per gestire i runtime di Python su MacOS è tramite il gestore di pacchetti Homebrew. Homebrew fornisce un'interfaccia coerente per scaricare, installare, gestire e rimuovere Python e altre app da riga di comando di terze parti.

Installa i pacchetti Python in modo intelligente

Dopo aver configurato un'installazione di base di una versione di Python, non iniziare a installare i pacchetti direttamente in essa con pip - no, nemmeno se prevedi di utilizzare Python per un solo progetto. Imposta le directory del tuo progetto, installa gli ambienti virtuali Python in esse, quindi installa i pacchetti in quegli ambienti virtuali. In questo modo, l'installazione della base rimane pulita.

Per un modo di alto livello per gestire più progetti con ambienti virtuali e dipendenze, guarda nel progetto Poetry. Poetry fornisce uno strumento da riga di comando per la gestione di ambienti virtuali e dipendenze ad alto livello.

Installa più versioni di Python fianco a fianco

Il problema più difficile quando si ha a che fare con le installazioni di Python è come gestire diverse versioni di Python installate fianco a fianco. Qui si applicano due regole pratiche universali:

  • Installa sempre ogni versione in una directory diversa.
  • Assicurati che tutti i percorsi di sistema siano configurati per puntare prima alla versione che desideri eseguire per impostazione predefinita.

L'esecuzione di più versioni di Python è fortemente a favore degli ambienti virtuali per progetto. Quando l'ambiente virtuale è attivato, tutta l'attività di Python all'interno del contesto del progetto viene automaticamente diretta verso la giusta versione di Python, 

Un'altra opzione a disposizione degli utenti Windows per controllare quale versione di Python utilizzare quando vengono installati multipli è l' pyapp di avvio. Durante l'installazione di Python, ti viene offerta la possibilità di installare il programma di pyavvio, un piccolo eseguibile che ti consente di selezionare (tramite i flag della riga di comando) quale versione di Python utilizzare per un determinato script. Ad esempio, per eseguire pipper Python 3.7, devi inserire  py -3.7 -m pip.

Aggiorna Python in modo intelligente

Aggiornamenti di revisione minori per Python, ad esempio da Python 3.7.2 a Python 3.7.3, sono generalmente abbastanza facili. Su Windows, il programma di installazione rileva la presenza della versione esistente e la aggiorna. Su Linux e MacOS, il programma di installazione o il gestore di pacchetti in genere fa la stessa cosa.

Tuttavia, eventuali ambienti virtuali creati sarà anche bisogno di aggiornamento; non si aggiornano automaticamente. Per aggiornare Python in un ambiente virtuale, vai semplicemente alla directory dell'ambiente virtuale e inserisci  venv --upgrade. Ancora una volta, nota che questo funziona meglio solo per aggiornamenti di revisione minori, come Python 3.7.2 a Python 3.7.3.

Se stai eseguendo un aggiornamento di revisione di un punto importante, come Python 3.7 a Python 3.8, la soluzione migliore è quella di utilizzare venvper creare una nuova sottodirectory dell'ambiente virtuale separata nella directory del progetto, reinstallare tutte le dipendenze in essa e passare all'utilizzo del nuovo ambiente virtuale. La maggior parte degli IDE con supporto Python (ad esempio, Microsoft Visual Studio Code) rileverà più ambienti virtuali in un progetto e ti consentirà di passare da uno all'altro.