Usare Python 2.7 e 3.6 in Windows 10 con virtualenv
Ho deciso di disinstallare Python 3.5.2 dal mio sistema Windows 10 e dotarmi di due ambienti separati con Python 2.7.13 e Python 3.6.1 in modo da poter selezionare l’interprete più opportuno in base agli script da programmare ed eseguire, e per ovviare a …
Ho deciso di disinstallare Python 3.5.2 dal mio sistema Windows 10 e dotarmi di due ambienti separati con Python 2.7.13 e Python 3.6.1 in modo da poter selezionare l’interprete più opportuno in base agli script da programmare ed eseguire, e per ovviare a frustranti errori di compatibilità ed aggiornamento del codice. Capita spesso che alcuni script datati non funzionino correttamente con Python 3.
Per prima cosa, ho disinstallato Python 3.5.2 tramite l’applicazione Programmi e funzionalità del Pannello di Controllo di Windows: questa operazione ha lasciato le cartelle Python\Python35-32\Lib e Python\Python35-32\Scripts. Procederò in un secondo momento a rimuovere tutta la cartella Python35-32 quando sarò sicuro di aver reinstallato tutti i package che mi servono per le nuove versioni di Python.
Poi, ho scaricato i files python-2.7.13.msi e python-3.6.1.exe da python.org e li ho eseguiti. Durante l’installazione, ho specificato due percorsi di installazione distinti:
C:\Users\rfusi\AppData\Local\Programs\Python\Python27 C:\Users\rfusi\AppData\Local\Programs\Python\Python36
Al termine dell’installazione, ho aperto il Prompt dei comandi ed ho digitato python: ho rilevato che il comando non é riconosciuto…
Per risolvere, ho aperto “Pannello di controllo > Sistema > Impostazioni di sistema avanzate > Variabili d’ambiente…” ed ho modificato la variabile utente PATH, aggiungengo le seguenti 2 righe:
C:\Users\rfusi\AppData\Local\Programs\Python\Python36 C:\Users\rfusi\AppData\Local\Programs\Python\Python36\Scripts
In questo modo, il Prompt dei comandi utilizzerà Python 3.6.1 come interprete predefinito per gli script.
A questo punto, ho installato virtualenv con pip.
pip install virtualenv
Quindi, creo la directory VirtualEnv in C:\Users\rfusi\AppData\Local\Programs\Python ed il file setup_ve.bat contenente il seguente codice:
virtualenv -p C:\Users\rfusi\AppData\Local\Programs\Python\Python27\python.exe C:\Users\rfusi\AppData\Local\Programs\Python\VirtualEnv\2.7 virtualenv -p C:\Users\rfusi\AppData\Local\Programs\Python\Python36\python.exe C:\Users\rfusi\AppData\Local\Programs\Python\VirtualEnv\3.6
Facendo doppio click sul file setup_ve.bat, si avvia la procedura per impostare i 2 ambienti python virtuali (ho registrato le istruzioni nel file “.bat”, solo per non dimenticarmi come si fa…).
Creo altri 2 file, activate_p27.bat e activate_p36.bat per registrare le istruzioni che attivano rispettivamente i due ambienti python.
[activate_p27.bat] C:\Users\rfusi\AppData\Local\Programs\Python\VirtualEnv\2.7\Scripts\activate.bat [activate_p36.bat] C:\Users\rfusi\AppData\Local\Programs\Python\VirtualEnv\3.6\Scripts\activate.bat
Per finire, aggiungo C:\Users\rfusi\AppData\Local\Programs\Python alla variabile PATH dell’utente come fatto in precedenza.
set path=%path%;C:\Users\rfusi\AppData\Local\Programs\Python
In questo modo, quando apro il Prompt dei comandi e voglio attivare Python 2.7.13, mi basta digitare il comando use_p27; per ripristinare l’ambiente normale, basta digitare il comando deactivate.
Prima di concludere, suggerisco di creare il file sitecustomize.py in VirtualEnv\2.7\Lib\site-packages con il seguente codice che imposta la codifica di default a UTF-8.
# encoding=utf8 import sys reload(sys) sys.setdefaultencoding('UTF8')
In questo modo ho aggirato l’errore UnicodeDecodeError: ‘ascii’ codec can’t decode byte… che ho riscontrato con qualche script.
Riferimenti
- How to run multiple Python versions on Windows
- How to fix: “UnicodeDecodeError: ‘ascii’ codec can’t decode byte”
- Solving Unicode Problems in Python 2.7
Libri suggeriti
Condividi questo articolo
Se ti è piaciuto questo articolo e pensi possa essere utile anche ad altri, condividilo con i tuoi amici e conoscenti, facendo click sui pulsanti dei tuoi social network preferiti.
P.S. Grazie!
Commenti
Cosa pensi di questo articolo? Hai dei suggerimenti da darmi o vuoi segnalare la tua esperienza in questa pagina? Registrati con Disqus ed inserisci il tuo commento qui sotto!
Inoltre, se lo desideri puoi anche scrivermi una e-mail.