You can generally install multiple Python Version side by side. When installing in Windows, apart from file installation, registry is also updated so that any subsequent package/tools installation can enumerate all the Python Installation in the current m/c.
Only problem happens if the installation is for the same version but different bitness.
As because, the registry Path SOFTWARE\Python\Pythoncore\ does not differentiates with the bitness and bug-fix, you would end up overlaying the InstallPath and PythonPath if you are installation same version with different bug-fix or different bitness.
Solution
- Install two different Versions for different bitness.
- Prepare a script to update the registry key each time you want to switch between the bitness. I happened to stumble upon a simple similar script in effbot which does the Job.
Update
As Ruediger Jungbeck pointed out that he can see two different registry keys, I suddenly recollected an important change post Vista. On a 64 bit system in order to enable accessing the registry keys from 32 bit and 64 bit application, Windows splits the registry at important nodes. For 64 bit applications, its the native registry path but for 32 bit applications its the WoW6432Node. So when running a 32 bit Version of Python\Tools\extension, it will only see the Wow6432Node. 64 bit applications will only see the native node. There are APIs to access the cross bitness nodes but that is outside the scope of this question.
So to summarize, windows intelligently handles 32 and 64 bit applications by splitting the node which will allow 32 bit extensions to transparently access the 32 bit Python Installation.