How to house keep your Python environment
I am sure you want your work place to be tidy and efficiently organized. And this is about your Python environment as well.
If you want it to be predictable and you do not like to spend hours on Stackoverflow in search how to fix your environment gone out of control you just have to use virtual environment for each and every python project that you are involved in.
Luckily starting from Python 3.6 this is super easy! You do not even have to install virtualenv. All batteries now are included!
python3 -m venv <venv folder name>
For Windows use
python -m venv <venv folder name>
This command will create in <venv folder name>
Python virtual environment that incapsulates all
Python libraries.
To “activate” it (please note first .
this is shortcut for source)
. <venv folder name>/bin/activate
For Windows use
<venv folder name>\Scripts\activate.bat
After activation all libraries will be used from the environment. And when you install something with
pip install
it will change only this local environment and wont break your system or change any other
environments.
To exit from the environment
deactivate
To make it even simpler I want to share with you the very simple script activate.sh
:
In linux you run (note first .
)
. ./acivate.sh
It will will create virtual environment if it is not exist. Also it installs in the environment
Python packages listed in the file requirements.txt
. If the environment already exists the script
does nothing (see the check on line 25).
After that the script activates the environment (line 32).
In the variable PYTHON
(line 7) inside the script you specify Python version you need. And you can change the
virtual environment folder name in variable VENV_FOLDER
(line 6).
Line 14..22 checks that you do source the script (call it with command source
or .
).
If you get error .. 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1
that means you have not installed module ensurepip
for the Python version you specified in the
script (variable PYTHON
) and you need to install it. For example for python3.7 in Ubuntu:
sudo apt-get install python3.7-venv