title: What are the pitfalls and workarounds when using Python virtual environments on Windows?
body: <p><strong>Short Description</strong><br>
  The question is not meant to ask if using virtual environments are needed, but when using Ian Bicking's <a href="http://www.virtualenv.org" rel="nofollow noreferrer">virtualenv</a>  what is the best way, if any, to manage environments in Windows.  If you have multiple ideas, please answer multiple times so the best answers can be voted up.  Thanks! </p>
  
  <p><strong>Background</strong><br>
  When developing in python, I generally try use Mac osx / bash as much as possible. However there are always projects that I am forced to use Windows on for hardware/driver support.  For these projects, I tend to rely on the 'double click' method to run the modules with the registered python.exe.  The use of the 'double click' is such a simple way to run multiple threads / tests at the same time, without having to open a new command prompt, drill down to the directory needed, then typing 'python.exe module.py'.  </p>
  
  <p><strong>The End Goal</strong><br>
  I would like to have a way to manage and utilize virtual environments without having to be at the command prompt (Windows only)  </p>
  
  <p><strong>Wish List</strong><br>
  1. Be able to install modules from either pip (command line) or from binaries (for those that can't be installed with pip for whatever reason).<br>
  2. Manage environments, with virtualenv.exe,  from a GUI. (Create, remove, list, activate, etc...)  </p>
  
  <p><strong>Research</strong><br>
  So far I have been able to do bits and pieces of my wish list using different scripts / methods, but have yet to find a way to combine them.  I was planning to combine most of these into a GUI my self, but thought it would be wise to find out if there is a <em>good</em> reason this doesn't exist already.  </p>
  
  <p>Installing binaries to a virtual environment can be done fairly easy using a script that changes what version of python is registered in Windows.  I have been using the script for several months now with nothing but great results. See <a href="https://stackoverflow.com/questions/3271590">SO Question</a>  </p>
  
  <p>Managing the environments appears to the more difficult portion.  </p>
  
  <p>If using bash, there is <a href="http://www.doughellmann.com/projects/virtualenvwrapper/" rel="nofollow noreferrer">virutalenvwrapper</a> written by Doug Hellmann.  I use this when working in Mac OSX and hightly recommend it.  </p>
  
  <p>There is a port of this exertion into Power Shell found <a href="https://bitbucket.org/vanl/virtualenvwrapper-powershell" rel="nofollow noreferrer">here</a>  but still will require a third party command prompt interface to be installed.  </p>
  
  <p>One of the more unique ports to windows that I have seen ports virtualenvwrapper to bat files.  I have not tested this, but it would still require a the use of the command prompt.  Found <a href="https://github.com/davidmarble/virtualenvwrapper-win" rel="nofollow noreferrer">here</a>  </p>
  
  <p>The most promising helper function I have found to date is written by Justin Driscoll.  While <a href="http://justindriscoll.us/2009/03/virtualenv-helper-for-windows.html" rel="nofollow noreferrer">this</a> exact example would require the command prompt, it would be trivial to convert this to something that a python GUI could call.  This was the path I was going down before I thought I should check with the masses on the best way to achieve my goal.</p>