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.7or -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.