I have two python versions: Python 2.5 and Python 2.7. When I\'m setting up django, I want to use Python 2.7, but django is using Python 2.5 somehow.
How can I make sur
Make two simple .cmd files:
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
Now you can switch between Python 2.5 and 2.7. :)
Python installer does no change to PATH environment variable under windows.
When typing something like python setup.py
windows first looks for python in PATH, then in current user registry hive
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\App Paths\Python.exe
and then in local machine registry hive
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\Python.exe
Now that Python 3.3 is released it is easiest to use the py.exe utility described here: http://www.python.org/dev/peps/pep-0397/
It allows you to specify a Python version in your script file using a UNIX style directive. There are also command line and environment variable options for controlling which version of Python is run.
The easiest way to get this utility is to install Python 3.3 or later.
Change the registry key at
HKEY_CLASSES_ROOT\Applications\python.exe\shell\open\command
If you want to switch between Python 2.x and Python 3.x then easiest way is to use Python Launcher which is included since 3.3 version. This is basically py.exe in Windows folder. To start Python 3.x command prompt, just type
py -3
To execute script with Python 3.x, use
py -3 script.py
If you don't specify -3 then 2.x version is used by default. You can also make this explicit by using -2.7 switch.
py -2.7 script.py
Finally, you can now embed the version number to use in .script file itself. This works because after Python 3.3+ is installed, it associated py.exe with .py files.
#! python3
import sys
sys.stdout.write("hello from Python %s\n" % (sys.version,))
Change your PATH system environment variable to point to the version of Python you want to use.