DOMANDA Versioni multiple di Python 3.x su windows

fabio_1

Utente Attivo
231
8
CPU
i5-6500
Scheda Madre
ASRock H170 Pro4S
HDD
Samsung 870QVO 1TB, Samsung 850EVO 250GB, HD Toshiba 2TB
RAM
Corsair DD4 2133 C13 2x4GB
GPU
Sapphire R9 380 4GB NITRO
Audio
Integrata + DAC Audioengine D1
Monitor
LG 24MB56HQ-B IPS
PSU
XFX 550 Black
Case
Corsair Spec-03
Periferiche
Casse Edifier R1800TIII
OS
Windows 10
Buongiorno, chiedo un aiuto perchè non mi è chiaro come dovrei organizzare i miei progetti e non sono molto esperto.

Uso windows quindi non ho python istallato ne Pip quindi non posso creare ambienti virtuali. Questo per dire che devo avere un Python globale (intendo fuori da ambiente virtuale). Specifico anche che sto parlando di versioni diverse di python 3 quindi python 2.7 non mi interessa.

Quindi istallo python globalmente e creo il mio ambiente virtuale (attualmente raccomandano di usare il modulo venv per farlo) e comincio il mio progetto. Poi un altro, poi un altro.
Ora mettiamo che voglia aggiornare alla nuova versione di python uno di questi progetti (o usarlo per crearne uno nuovo) ma così facendo tutti i miei progetti (sviluppati con il Python vecchio) non funzionerebbero più e dovrei aggiornarli tutti. La cosa mi sembra abbastanza insostenibile, non voglio aggiornare tutti i miei progetti ogni volta. Quindi cosa dovrei fare?

Cercando sul web pare che debba istallare python dentro l'ambiente virtuale così ogni progetto avrebbe la sua versione di python ed io sono libero di aggiornare la versione 'globale' senza andare a toccare le altre.

Non sono però sicuro di aver capito bene, complice la mia inesperienza. Per prima cosa posso istallare python dentro un ambiente virtuale? leggo che dovrei usare la versione 'corretta' di python per creare l'ambiente virtuale quindi prima dovrei istallarla globalmente affianco alle altre versioni, poi usarla per creare l'ambiente virtuale e poi istallarla nuovamente dentro tale ambiente??

Dal sito ufficiale:
Running this command creates the target directory (creating any parent directories that don’t exist already) and places a pyvenv.cfg file in it with a home key pointing to the Python installation from which the command was run (a common name for the target directory is .venv). It also creates a bin (or Scripts on Windows) subdirectory containing a copy/symlink of the Python binary/binaries (as appropriate for the platform or arguments used at environment creation time).

Come faccio a istallare python localmente? uso pip? forse c'è una opzione su venv, ma non la capisco bene

Una volta attivato l'ambiente dovrebbe usarmi la versione di python locale e quindi questo non dovrebbe essere un problema ma senza ambiente attivato avere più versioni istallate globalmente non da problemi a fargli capire quale voglio usare?

E poi se volessi aggiornare una versione locale di python posso (sono consapevole che dovrò aggiornare il progetto in questione)? Il dubbio nasce perchè mi ritroverei l'ambiente virtuale creato con la versione vecchia... non importa? e come faccio tale aggiornamento? o forse devo ricreare tutto l'ambiente virtuale usando al nuova versione?

Quindi per riassumere dovrei
1) istallare globalmente tutte le versioni di python che sto usando (e istallarle mano mano alla bisogna)
2) usare la versione che voglio per creare un ambiente virtuale
3) attivare tale ambiente e istallare la versione che voglio di python anche localmente
4) quando voglio aggiornare tale versione locale posso farlo tramite pip (o altro?)

È questo il metodo corretto?

Grazie
 
Ultima modifica:

Ibernato

Utente Èlite
4,328
2,047
OS
Windows 10 Pro / Ubuntu 22.04
Buongiorno, chiedo un aiuto perchè non mi è chiaro come dovrei organizzare i miei progetti e non sono molto esperto.

Uso windows quindi non ho python istallato ne Pip quindi non posso creare ambienti virtuali. Questo per dire che devo avere un Python globale (intendo fuori da ambiente virtuale). Specifico anche che sto parlando di versioni diverse di python 3 quindi python 2.7 non mi interessa.

Quindi istallo python globalmente e creo il mio ambiente virtuale (attualmente raccomandano di usare il modulo venv per farlo) e comincio il mio progetto. Poi un altro, poi un altro.
Ora mettiamo che voglia aggiornare alla nuova versione di python uno di questi progetti (o usarlo per crearne uno nuovo) ma così facendo tutti i miei progetti (sviluppati con il Python vecchio) non funzionerebbero più e dovrei aggiornarli tutti. La cosa mi sembra abbastanza insostenibile, non voglio aggiornare tutti i miei progetti ogni volta. Quindi cosa dovrei fare?

Cercando sul web pare che debba istallare python dentro l'ambiente virtuale così ogni progetto avrebbe la sua versione di python ed io sono libero di aggiornare la versione 'globale' senza andare a toccare le altre.

Non sono però sicuro di aver capito bene, complice la mia inesperienza. Per prima cosa posso istallare python dentro un ambiente virtuale? leggo che dovrei usare la versione 'corretta' di python per creare l'ambiente virtuale quindi prima dovrei istallarla globalmente affianco alle altre versioni, poi usarla per creare l'ambiente virtuale e poi istallarla nuovamente dentro tale ambiente??

Dal sito ufficiale:


Come faccio a istallare python localmente? uso pip? forse c'è una opzione su venv, ma non la capisco bene

Una volta attivato l'ambiente dovrebbe usarmi la versione di python locale e quindi questo non dovrebbe essere un problema ma senza ambiente attivato avere più versioni istallate globalmente non da problemi a fargli capire quale voglio usare?

E poi se volessi aggiornare una versione locale di python posso (sono consapevole che dovrò aggiornare il progetto in questione)? Il dubbio nasce perchè mi ritroverei l'ambiente virtuale creato con la versione vecchia... non importa? e come faccio tale aggiornamento? o forse devo ricreare tutto l'ambiente virtuale usando al nuova versione?

Quindi per riassumere dovrei
1) istallare globalmente tutte le versioni di python che sto usando (e istallarle mano mano alla bisogna)
2) usare la versione che voglio per creare un ambiente virtuale
3) attivare tale ambiente e istallare la versione che voglio di python anche localmente
4) quando voglio aggiornare tale versione locale posso farlo tramite pip (o altro?)

È questo il metodo corretto?

Grazie
Puoi avere più versioni di python installate. Basta eseguire il .exe di ogni versione.
Per gestire la versione del progetto, questa la determini coni l file venv. Infatti, quando crei il venv, ti dice che versione vuoi utilizzare e ti fa selezionare una delle version disponibili sul tuo pc
 
  • Mi piace
Reazioni: BAT

fabio_1

Utente Attivo
231
8
CPU
i5-6500
Scheda Madre
ASRock H170 Pro4S
HDD
Samsung 870QVO 1TB, Samsung 850EVO 250GB, HD Toshiba 2TB
RAM
Corsair DD4 2133 C13 2x4GB
GPU
Sapphire R9 380 4GB NITRO
Audio
Integrata + DAC Audioengine D1
Monitor
LG 24MB56HQ-B IPS
PSU
XFX 550 Black
Case
Corsair Spec-03
Periferiche
Casse Edifier R1800TIII
OS
Windows 10
Puoi avere più versioni di python installate. Basta eseguire il .exe di ogni versione.
Intanto grazie per la risposta e scusa se sono stato assente. Lentamente ma procedo.

Al momento parliamo solo di questa riga.

Eseguire (direttamente) l'exe è una cosa che si fa??? diciamo che userò il launcher: py -3.1 ad esempio per lanciare la versione 3.1

Ho provato ad istallare due versioni la 3.9 e la 3.1, il problema è che mentre con la 3.9 mi funziona tutto con la 3.1 non mi vede i package istallati (che del resto sarebbe da vedere se sono compatibili con entrambe le versioni). Parlo di quelli base necessari e nello specifico pip (ho provato anche a reinstallarlo con get-pip apposito per il 3.1 ma ottengo un errore) e virtualenv (il modulo venv non c'è in python 3.1 quindi se voglio creare un ambiente virtuale con questa versione devo avere virtualenv, almeno da ciò che ci capisco io). Altri package ovviamente saranno da istallare negli ambienti virtuali specifici.
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili