C'è un modo per installare python 3 su un'installazione di python 2 senza rovinare nulla? Il problema principale è che ho il codice che viene eseguito da "python xxxxx.py abc123". C'è un modo per cambiare python 3 per essere "python3 xxxx.py abc123"? Lo stesso comando python
è il conflittoCome si eseguono Python 2 e 3 in Windows 7?
risposta
Esiste un modo migliore di coesistenza/avvio di Python 2 e Python 3 su Windows. Python 3.3 ha introdotto il launcher Python per Windows (vedere http://www.python.org/dev/peps/pep-0397/).
Dopo l'installazione di Python 3.3, il py.exe
e pyw.exe
viene copiato nella directory c:\Windows
, e le associazioni sono impostati per l'estensione .py
in modo che utilizzi il programma di avvio. Di default, Python 2 viene lanciato per py script.py
. Il py -3 script.py
lancia Python 3. (Questo significa anche che nessun percorso per Python deve essere aggiunto per l'ambiente -. Il C:\Windows
è già nella PATH
)
Il migliore di tutti è che #!python2
nello script causa sindrome lauching tramite Python 2, lo #!python3
causa l'avvio dello script tramite Python 3. In questo modo, puoi utilizzare gli script per entrambe le versioni di Python e puoi renderli univoci - py script.py
o semplicemente facendo clic sull'icona dello script.
Ci sono più dettagli ma questo è fondamentalmente quello che ti serve.
Aggiornamento: Quando si usa Python launcher per Windows, è anche possibile lanciare lo script Python da cmd
finestra digitando > script.py
(cioè senza digitare esplicitamente py
--il nome del lanciatore Python - di fronte alla sceneggiatura nome) o anche digitando il nome senza l'estensione .py
(che è solo > script
).
In questo modo, le cose iniziano ad assomigliare al modo Unix di denominare gli script (senza la necessità dell'estensione); tuttavia, è comunque necessario aggiungere l'estensione .py
durante la creazione del file di script.
(sì, è un po 'più disordinato rispetto all'approccio Unix. Questa è la differenza tra il "pensare prima!" e la "Sell prima!" approcci degli sviluppi dei sistemi operativi. Comunque, il mio complimenti al team di sviluppo di Python per spremere il meglio di Windows - rilasciando il launcher Python per Windows.)
Non vedo py.exe o pyw.exe. Ma quando lancio Python ottengo: 'errore Python Fatal: Py_Initialize: incapace di caricare il file system codec file "C: \ Python27 \ lib \ codifiche \ __ init__.py", la linea 123 sollevare CodecRegistryError, \ ^ SyntaxError : sintassi non valida'. Il che significa che python3 sta provando a lanciare python2. – CMCDragonkai
In realtà py.exe è in C: \ Python33. Ma se provo a lanciare py -3, ottengo lo stesso errore di cui sopra. – CMCDragonkai
@CMCDragonkai: non posso confermarlo. Ho appena disinstallato tutte le versioni di Python che avevo sul mio disco, rimuovendo fisicamente anche C: \ PythonXX (con i pacchetti del sito, ecc.), Rimuovendo fisicamente anche C: \ Windows \ py.exe e pyw.exe. Quindi ho scaricato e installato http://www.python.org/ftp/python/2.7.6/python-2.7.6.amd64.msi (py.exe non aggiunto a C: \ Windows), quindi http: //www.python.org/ftp/python/3.3.2/python-3.3.2.amd64.msi - py.exe e pyw.exe aggiunti a C: \ Windows. Che versione di Windows hai? – pepr
Non sono sicuro se sarebbe soddisfare le vostre esigenze, ma si dovrebbe dare un'occhiata a virtualenv: http://www.virtualenv.org/en/latest/
Questo vi permetterà di creare ambienti separati per Python 2 e 3 (con il - p flag). Se il tuo caso d'uso è qualcosa per cui questo non funzionerebbe, aggiorna la domanda con alcune più specifiche e sono certo che otterrai altri suggerimenti.
Supponendo di installare python3 in una directory separata, è possibile anche rinominare l'eseguibile python 3 in python3.exe.
Rinominare ".exe" interrompe l'uso di 'py -3', che è stato suggerito da @pepr. – Kevin
È necessario modificare la variabile di ambiente per includere il percorso Python 3 o Python 2.
- 1. Tipi di sottoclassi incorporati in Python 2 e Python 3
- 2. Come si eseguono i file eseguibili su Windows 7 utilizzando il prompt dei comandi?
- 3. Nuovo progetto: Python 2 o Python 3?
- 4. Qual è la differenza tra 3/2 e -3/2?
- 5. che eseguono 3 discussioni in sequenza java
- 6. Come si eseguono più test case Python in un ciclo?
- 7. Come si eseguono gli script Python in modo persistente?
- 8. Byte chunking (senza stringhe) in Python 2 e 3
- 9. come convertire Python 3 in Python 2 codice?
- 10. Differenza in "dir" tra Python 2 e 3
- 11. Come si eseguono assegnazioni multiple in MATLAB?
- 12. Come stampare un file su carta in Python 3 su Windows XP/7?
- 13. Soluzione standard per supportare Python 2 e Python 3
- 14. Quali sono alcuni suggerimenti sulle prestazioni quando si eseguono applicazioni per Windows Phone 7?
- 15. Schedule Python Script - Windows 7
- 16. Anaconda: Python 3 e 2 in IPython/Jupyter Notebook
- 17. mysql per Python 2. 7 dice Python v2.7 non trovato
- 18. Installazione Theano per Windows, Python 3, 64bit
- 19. Eclipse e Windows 7
- 20. Come si eseguono jQuery promises in phantomJS?
- 21. Come si eseguono test continui in .NET?
- 22. Catch Broken Pipe in Python 2 AND Python 3
- 23. Come si eseguono programmi con Strawberry Perl?
- 24. Come si eseguono operazioni bit in glsl
- 25. Come si eseguono i test in Sinatra?
- 26. Perché questo codice argparse si comporta in modo diverso tra Python 2 e 3?
- 27. Python 2 o Python 3 come prima lingua dello studente
- 28. Nuovo in Python ... Python 3 e Matplotlib
- 29. Come imparo Python 2 se conosco già Python 3?
- 30. .NET ListView e Windows 7
È certamente possibile, poiché "installare python" sta solo estraendo un sacco di cartelle. Basta eseguire gli installer e avrai una cartella python26 e python32 nell'unità C.Per quanto riguarda il comando, è necessario un po 'di giocherellare con le variabili di ambiente ogni volta che si desidera utilizzare l'altro, quindi forse è necessario un breve script di bash per modificare il PATH? –
http://j.mp/ZfKVrb forse questo aiuterà – dnelson
Nessun bisogno di smanettare da Python 3.3 in poi. – pepr