2011-01-12 23 views
13

Ho due versioni python: Python 2.5 e Python 2.7. Quando sto installando django, voglio usare Python 2.7, ma django sta usando Python 2.5 in qualche modo.Cambia interprete Python predefinito su Windows XP

Come posso assicurarmi che django usi Python 2.7? Uso Windows XP

+0

Eventuali duplicati di [Modifica finestre pitone interprete] (http://stackoverflow.com/questions/1053794/changing-python-interpreter-windows) –

risposta

10

Modificare la variabile di ambiente del sistema PATH in modo che punti alla versione di Python che si desidera utilizzare.

+0

Si noti che questo non cambierà le associazioni di estensione di file. –

+2

come ??? per favore elabora, questo non aiuta molto – Martian2049

21

Cambiare il PATH aiuterà, se si chiama sempre python direttamente, piuttosto che fare affidamento sull'associazione di file .

Ad esempio: "python foo.py" eseguirà lo script "foo" con qualsiasi python sia il primo sul PATH.

Tuttavia, se si esegue solo "foo.py", il gestore associato nel Registro di sistema, per questa estensione di file, sarà il primo chiamato.

Nel tuo caso, sembra che sarebbe python 2.5. Dai un'occhiata aprendo regedit, e controllando i valori di:

HKEY_CLASSES_ROOT\Python.File\shell\open\command 

Il valore (default) di cui sarà probabilmente qualcosa di simile "C:\Python25\python.exe" "%1" %*

Una rapida (e sporca?) Risolvere per voi sarebbe quella di cambia questi valori nella versione python che desideri realmente.

Una soluzione migliore sarebbe quella di fare qualcosa di simile ciò che è descritto in questo richiesta di funzionalità:

http://bugs.python.org/issue4485

Da allora, fino a quando si ha diritti di amministratore, si potrebbe passare come avevi bisogno puntando assoc a la versione che desideri in fretta.

+6

BTW Modo rapido per trovare il gestore per l'estensione del file python: 'ftype | find/I" python "' –

+0

questa risposta fornisce maggiori dettagli su come trovare ciò che è associato con .py http: // StackOverflow.com/a/5088548/264607 e risposta shitalshah è più attuale: http://stackoverflow.com/a/24277570/264607 – BlackICE

12

fare due semplici file .cmd:

python25.cmd:

@echo off 
set PYTHONHOME=c:\python25 
set PATH=%PATH%;c:\python25 

python27.cmd:

@echo off 
set PYTHONHOME=c:\python27 
set PATH=%PATH%;c:\python27 

Ora è possibile passare da Python 2.5 e 2.7. :)

5

Il programma di installazione Python non modifica la variabile di ambiente PATH in Windows. Quando si digita qualcosa come python setup.py finestre del primo sembra per Python in PATH, poi nel registro hive utente corrente

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\App Paths\Python.exe 

e poi in hive del Registro di sistema locale

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\Python.exe 
5

Ora che Python 3.3 viene rilasciato è più facile per utilizzare l'utilità py.exe qui descritta: http://www.python.org/dev/peps/pep-0397/

Consente di specificare una versione Python nel file di script utilizzando una direttiva di stile UNIX. Ci sono anche opzioni a riga di comando e variabili d'ambiente per controllare quale versione di Python viene eseguita.

Il modo più semplice per ottenere questa utilità è installare Python 3.3 o successivo.

1

modificare la chiave di Registro di sistema

HKEY_CLASSES_ROOT\Applications\python.exe\shell\open\command 
4

Se si desidera passare dalla Python 2.xe Python 3.x poi modo più semplice è quello di utilizzare Python Launcher che è incluso in quanto versione 3.3. Questo è fondamentalmente py.exe nella cartella di Windows. Per iniziare a Python prompt dei comandi 3.x, basta digitare

py -3 

Per eseguire script con Python 3.x, utilizzare

py -3 script.py 

Se non si specifica -3 allora versione 2.x è utilizzato per impostazione predefinita. Puoi anche renderlo esplicito usando l'opzione -2.7.

py -2.7 script.py 

Infine, ora è possibile incorporare il numero di versione da utilizzare nel file .script stesso. Funziona perché dopo aver installato Python 3.3+, ha associato py.exe con i file .py.

#! python3 
import sys 
sys.stdout.write("hello from Python %s\n" % (sys.version,)) 
+1

Vorrei aggiungere che è possibile modificare il valore predefinito nel file py.ini incluso nella posizione di py .exe – BlackICE

Problemi correlati