Using VirtualEnv with multiple Python versions on windows
If above measures are not working, try this( using venv instead of virtualenv):
python -m venv venvname
(replace python with python.exe path if it is not listed in environment variable path settings)
Under Windows you need to run:
virtualenv -p c:\python34.exe myvirtualenv
The .exe on the end makes all the difference.
Better:
py -3.4 -m venv c:\path\to\wherever\you\want\it
If you don't have the py.exe
launcher (but it should be installed) you can replace py -3.4
with c:\Python34\python.exe
(assuming the default location)
This works because of the handy-dandy, Windows-versioningest, super nice runtime picker py.exe
By default, py.exe
will be present on a Windows install (I think it comes with 2.7, I know it does with 3+). When you run py
then it will search for some environment variables or you can override that with a specific verison number (in your case -2.7
or -3.4
) You can leave off the .4
and it will choose the "biggest" minor version number.
You can also use it to run Python scripts. If you put a hash-bang line at the top of your script #!python3
and call it py myscript.py
then it will pick the correct version of Python to start with, by searching the first line of the script and searching for a version number.
This is cool, because you can put something like #!/usr/bin/env python3.4
in the top of your script and run it on Windows with py
, or on linux by doing
$ chmod +x myscript.py
$ ./myscript.py
Pretty useful.
Had to play around with this for a while to get it right. Had Python2.7.9 installed (Windows 7), wanted to take the latest Python3 release for a spin. After installing Python3.4.3 I went to directory bar and created a virtual environment foo with this command:
virtualenv -p c:\Python34\python.exe foo
It took me quite some time to understand that I needed to install the Python3.4.3 interpreter in the 'normal' fashion, I originally thought it would be installed USING virtualenv. That was explained in this answer. I did not touch the pythonpath in Windows after installing Python3.4.3.