Change Python Version in an Existing Virtualenv

Posted by Mike Barkas on Saturday September 10, 2016

How to Change Python Version

This is a short article describing how you can change the Python interpreter version in an existing virtualenv. If you start working on a project and realize you wish you started with Python 2, or you started with version 2 and wish you started with version 3, this can easily be change.

In this article I use virtualenvwrapper for managing Python virtualenvs.

The first thing to consider is using two directory locations for your virtualenvs. One for your libraries and packages and a different location for your project files. This is the key for being able to disconnect and change your Python interpreter. Keeping your project files separate makes version control a little easier too.

Virtualenvwrapper comes with some convenient commands for managing your virtualenvs.

To change your Python version:

  1. Deactivate your current environment session.

  2. If you have many packages or libraries installed, it would be a good idea to make a requirements.txt file. Remember to edit version as necessary.

  3. Remove the virtualenv with the wrapper command: rmvirtualenv

    This will remove the virtualenv, but leave your project files.

  4. Make a new virtualenv with the Python version you want.

    Example: mkvirtualenv -p python3 env-name

    You can specify the Python version with the -p flag and version. If you have a requirements.txt file, you can specify that with -r requirements.txt

  5. Now bind your new virtualenv to your project directory. You can specify the full paths, but it is easier to have your new virtualenv activated and be in your project directory. Then, run the command:

    Example: setvirtualenvproject

Read the docs for more details: