Nothing more frustrating in a data science project than a library that doesn’t work in your particular Python version. Sometimes, you just need to install a virtual environment with another Python version.
First of all, if you are a venv user, I hate to break it to you. There’s no straightforward way to create a virtual environment with another Python version using venv. For this reason, you’ll have to install virtualenv.
What is the difference between venv and virtualenv?
- venv is a package that comes with Python 3. In other words: you don’t need to install an extra package to create virtual environments.
- On the other hand, virtualenv is library that you can download via pip install virtualenv.
Furthermore, according to the virtualenv documentation, venv is…
- is slower (by not having the
- is not as extendable,
- cannot create virtual environments for arbitrarily installed python versions (and automatically discover these),
- is not upgrade-able via pip,
- does not have as rich programmatic API (describe virtual environments without creating them).
Virtual environments with other Python version
To create a virtual environment with another Python version, you have to take the following steps.
- Download the Python version that you need, e.g. Python 3.6
- Install the Python executable. I recommend a custom installation. There’s no need to add it to PATH.
- Run Virtual Studio Code (or any other editor or terminal). Windows: If the installation directory is within Program Files, run it as an Administrator.
- Install virtualenv in your main Python version via pip install virtualenv
- Create the virtual environment with virtualenv, and specify the -p parameter.
py -m virtualenv -p=<your_python_executable> <virtual_environment_directory>
If your directory contains spaces, wrap it in double quotes. Like this:
py -m virtualenv -p="C:\Program Files\Python36\python.Exe" .virtenv