Avevo installato due versioni di Python sul mio computer (versioni 2.6 e 2.5). Voglio eseguire 2.6 per un progetto e 2.5 per un altro.
Come posso specificare quale voglio usare?
Sto lavorando su Windows XP SP2.
Avevo installato due versioni di Python sul mio computer (versioni 2.6 e 2.5). Voglio eseguire 2.6 per un progetto e 2.5 per un altro.
Come posso specificare quale voglio usare?
Sto lavorando su Windows XP SP2.
Risposte:
Eseguire una copia diversa di Python è facile come avviare l'eseguibile corretto. Dici che hai avviato un'istanza di Python, dalla riga di comando, semplicemente digitando python
.
Ciò che fa ciò in Windows, è di trascinare la %PATH%
variabile d'ambiente, controllando la presenza di un eseguibile, file batch ( .bat
), file di comando ( .cmd
) o qualche altro eseguibile da eseguire (questo è controllato dalla PATHEXT
variabile d'ambiente), che corrisponde al nome assegnato. Quando trova il file corretto da eseguire, il file viene eseguito.
Ora, se hai installato due versioni di Python 2.5 e 2.6, il percorso avrà entrambe le loro directory al suo interno, qualcosa come PATH=c:\python\2.5;c:\python\2.6
Windows smetterà di esaminare il percorso quando trova una corrispondenza.
Quello che devi veramente fare è chiamare esplicitamente una o entrambe le applicazioni, come c:\python\2.5\python.exe
o c:\python\2.6\python.exe
.
L'altra alternativa è quella di creare una scorciatoia per il rispettivo python.exe
chiamante uno di loro python25
e l'altro python26
; puoi quindi semplicemente eseguire python25
sulla tua riga di comando.
Aggiunta di altre due soluzioni al problema:
#! c:\[path to Python 2.5]\python.exe
- per gli script che si desidera eseguire con Python 2.5
#! c:\[path to Python 2.6]\python.exe
- per gli script che si desidera eseguire con Python 2.6
o invece di eseguire il python
comando esegui pylauncher command ( py
) specyfing quale versione di Python desideri;
py -2.6
- versione 2.6
py -2
- ultima versione installata 2.x
py -3.4
- versione 3.4
py -3
- ultima versione installata 3.x
virtualenv -p c:\[path to Python 2.5]\python.exe [path where you want to have virtualenv using Python 2.5 created]\[name of virtualenv]
virtualenv -p c:\[path to Python 2.6]\python.exe [path where you want to have virtualenv using Python 2.6 created]\[name of virtualenv]
per esempio
virtualenv -p c:\python2.5\python.exe c:\venvs\2.5
virtualenv -p c:\python2.6\python.exe c:\venvs\2.6
allora puoi attivare il primo e lavorare con Python 2.5 in questo modo
c:\venvs\2.5\activate
e quando vuoi passare a Python 2.6 lo fai
deactivate
c:\venvs\2.6\activate
c:\venvs\2.5\scripts\activate
. Questo è su Windows 10 se questo fa la differenza. A parte questo, funziona come un fascino, grazie.
Da Python 3.3 in poi, c'è il launcher Python ufficiale per Windows ( http://www.python.org/dev/peps/pep-0397/ ). Ora puoi usare il #!pythonX
per determinare la versione desiderata dell'interprete anche su Windows. Vedi maggiori dettagli nel mio altro commento o leggi PEP 397.
Riassunto: I py script.py
lanci la versione di Python indicato in #!
o Python 2 se #!
è mancante. I py -3 script.py
lanci il Python 3.
.py
estensione. Il launcher stesso è installato in C:\Windows
quello che è già in PATH
. In questo modo, anche la PATH
variabile non deve essere modificata.
Come per @alexander puoi creare una serie di collegamenti simbolici come di seguito. Mettili da qualche parte che è incluso nel tuo percorso in modo che possano essere facilmente invocati
> cd c:\bin
> mklink python25.exe c:\python25\python.exe
> mklink python26.exe c:\python26\python.exe
Finché c: \ bin o dovunque tu li abbia inseriti è sul tuo percorso ora puoi andare
> python25
mklink
è disponibile solo nativamente in Windows Vista / 2008 +. Su XP e Server 2003 è possibile creare un "collegamento" invece di utilizzare fsutil hardlink create <new filename> <existing filename>
e inserire o spostare il <nuovo nome file> in un punto del percorso. I collegamenti fisici funzionano solo sulla stessa unità, tuttavia.
installa python
variabile d'ambiente
PYTHON2_HOME: C:\Python27
PYTHON3_HOME: C:\Python36
Path: %PYTHON2_HOME%;%PYTHON2_HOME%\Scripts;%PYTHON3_HOME%;%PYTHON3_HOME%\Scripts;
rinomina file
seme
python2 -m pip install package
python3 -m pip install package
python
comando sarebbe confuso con il sistema operativo.
Ad esempio per il tipo di versione 3.6 py -3.6
. Se hai anche versioni a 32 e 64 bit, puoi semplicemente digitare py -3.6-64
o py -3.6-32
.
py
eseguibile - è un'aggiunta solo per Windows? È possibile incorporarlo in uno script da riga di comando multipiattaforma che ha in alto: #!/usr/bin/env python3
ad esempio?
Quando installi Python, non sovrascriverà altre installazioni di altre versioni principali. Quindi l'installazione di Python 2.5.x non sovrascriverà Python 2.6.x, sebbene l'installazione 2.6.6 sovrascriverà 2.6.5.
Quindi puoi semplicemente installarlo. Quindi chiami la versione di Python che desideri. Per esempio:
C:\Python2.5\Python.exe
per Python 2.5 su Windows e
C:\Python2.6\Python.exe
per Python 2.6 su Windows o
/usr/local/bin/python-2.5
o
/usr/local/bin/python-2.6
su Windows Unix (inclusi Linux e OS X).
Quando installi su Unix (inclusi Linux e OS X) otterrai un python
comando generico installato, che sarà l'ultimo che hai installato. Questo non è per lo più un problema in quanto la maggior parte degli script chiamerà esplicitamente /usr/local/bin/python2.5 o qualcosa solo per proteggerlo. Ma se non vuoi farlo, e probabilmente non puoi installarlo in questo modo:
./configure
make
sudo make altinstall
Nota "altinstall" che significa che lo installerà, ma non sostituirà il python
comando.
Su Windows non ottieni un python
comando globale per quanto ne so, quindi non è un problema.
C:\Python2.5
o C:\Python2.6
appare nella PATH
variabile di ambiente, la versione corrispondente di Python diventerà quella predefinita a meno che non la si ignori specificando esplicitamente un percorso diverso da .exe che si desidera utilizzare.
Consiglio vivamente il progetto pyenv-win .
Grazie al lavoro di kirankotari , ora abbiamo una versione Windows di Pyenv.
Ecco un trucco rapido:
C:\Users\Your name
)name_of_your_shortcut.lnk
(Io uso p27.lnk
)cp c: \ python27 \ bin \ python.exe come python2.7.exe
cp c: \ python34 \ bin \ python.exe come python3.4.exe
sono tutti nel percorso di sistema, scegli la versione che vuoi eseguire
C:\Users\username>python2.7
Python 2.7.8 (default, Jun 30 2014, 16:03:49) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>>
C:\Users\username>python3.4
Python 3.4.1 (v3.4.1:c0e311e010fc, May 18 2014, 10:38:22) [MSC v.1600 32 bit Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
Utilizzando un file batch per passare, facile ed efficiente su Windows 7. Uso questo:
Nella finestra di dialogo delle variabili di ambiente (C: \ Windows \ System32 \ SystemPropertiesAdvanced.exe),
Nella sezione variabili utente
aggiunto% pathpython% alla variabile d'ambiente path
rimosso qualsiasi riferimento ai percorsi di Python
Nella sezione variabili di sistema
Ho creato file batch per ogni installazione di Python (esempio per 3,4 x64
Nome = SetPathPython34x64 !!! ToExecuteAsAdmin.bat ;-) solo per ricordare.
Contenuto del file =
Set PathPython=C:\Python36AMD64\Scripts\;C:\Python36AMD64\;C:\Tcl\bin
setx PathPython %PathPython%
Per passare da una versione all'altra, eseguo il file batch in modalità amministratore.
!!!!! Le modifiche sono effettive per la finestra del prompt dei comandi SUBSEQUENT APERTA. !!!
Quindi ho il controllo esatto su di esso.
Il modo più semplice per eseguire più versioni di Python su Windows è descritto di seguito come segue: -
1) Scarica le ultime versioni di python da python.org/downloads selezionando la versione pertinente per il tuo sistema.
2) Esegui il programma di installazione e seleziona Aggiungi python 3.x al percorso per impostare automaticamente il percorso in python 3 (devi solo fare clic sulla casella di controllo). Per python 2 apri il tuo programma di installazione di python 2, seleziona le preferenze che desideri, ma ricorda di impostare Aggiungi python.exe al percorso su Verrà installato sul disco rigido locale , Ora fai clic su Avanti e attendi che l'installazione finisca.
3) Quando entrambe le installazioni sono complete. Fai clic con il tasto destro del mouse sul mio computer - Vai a proprietà - Seleziona impostazioni di sistema avanzate - Vai a variabili di ambiente - Fai clic su Nuovo in Variabili di sistema e aggiungi una nuova variabile di sistema con nome variabile come PY_PYTHON e imposta questo valore variabile su 3 . Ora fai clic su OK e dovresti aver finito.
4) Ora per provare questo aprire il prompt dei comandi . Una volta entrato, digita python o py , dovrebbe aprire python3 .
5) Ora esci da python3 digitando exit () . Ora digita py -2 dovrebbe aprire python 2.
Se nulla di tutto ciò funziona, riavvia il computer e se il problema persiste, disinstalla tutto e ripeti i passaggi.
Grazie.
È possibile creare diversi ambienti di sviluppo Python graficamente da Anaconda Navigator. Ho avuto lo stesso problema mentre lavoravo con diverse versioni di Python, quindi ho usato Anaconda Navigator per creare diversi ambienti di sviluppo Python e ho usato diverse versioni di Python in ogni ambiente.
Ecco la documentazione di aiuto per questo.
https://docs.anaconda.com/anaconda/navigator/tutorials/manage-environments/
Utilizzando Rapid Environment Editor puoi spingere in alto la directory dell'installazione Python desiderata. Ad esempio, per avviare python dalla directory c: \ Python27, assicurarsi che la directory c: \ Python27 sia prima o sopra la directory c: \ Python36 nella variabile d'ambiente Path. Dalla mia esperienza, viene eseguito il primo eseguibile python trovato nell'ambiente Path. Ad esempio, ho installato MSYS2 con Python27 e da quando ho aggiunto C: \ MSYS2 al percorso precedente a C: \ Python36, python.exe dalla cartella C: \ MSYS2 .... è in esecuzione.
Basta chiamare l'eseguibile corretto
python
entrare nella shell provare python2.5
o python2.6
. Non sono un utente di Windows, ma su unix / usr / bin / python di solito è un alias dell'eseguibile completo, presumo che Python in Windows sia installato in modo simile