go back to [[:start|main page]]
======Virtual Environments in Python ======
=====Installation example=====
First, open a terminal and check if **pip** is installed by typing :
pip -V
If the command does exist, it will give the version number of pip, if the **pip** command is not installed you can get it by typing :
sudo apt install python-pip
or:
sudo apt install python3-pip
The virtual environment is installed at user level (no sudo required) with **pip**:
pip install --user virtualenv
If after a while **virtualenv** command is not working (No module named 'virtualenv.__main__') you can try changing version; e.g. :
pip install --user virtualenv==20.0.23
To get larger access to virtualenv commands, you can it in the **$PATH** variable by adding these 2 lines at the end of the **.bashrc** file :
# add virtualenv command path :
PATH=$HOME/.local/bin:$PATH
Then you can create the virtualenvs everywhere in your computer, but it may be wise to put them in a folder (e.g. "MyVenvs") :
cd
mkdir MyEnvs
cd MyEnvs
Then we can create and activate our first virtualenv called **venv-opencv-27** to, for example, make some image processing with numpy and OpenCv in Python 2.7 :
virtualenv -p /usr/bin/python2.7 venv-opencv-27
source venv-opencv-27/bin/activate
If everything went well, you should see the name of the virtualenv **(venv-opencv-27)** into parenthesis at the beginning of the prompt. We can now install the packages we need in the virtualenv and check installation went fine by typing the version of **numpy** and **OpenCV** ::
pip install numpy
pip install opencv-contrib-python
pip install Pillow
python -c "import numpy as np;print np.__version__"
python -c "import cv2;print cv2.__version__
Then your can work on your project folder. The project folder folder can be everywhere on your computer. As long as you have **(venv-opencv-27)** at the beginning of the prompt you are in the virtualenv.
To quit the virtualenv, just type :
deactivate
To open back the virtual, you just need to activate it again :
source $HOME/MyEnvs/venv-opencv-27/bin/activate
=====Manual Install with setup.py=====
Open the virtualenv (ex) :
source $HOME/MyEnvs/venv-opencv-27/bin/activate
and check that the default python running is the one of the virtualenv :
which python
should give the path of the python interpreter in the virtualenv, in our example it will be :
/home/newubu/MyEnvs/venv-opencv-27/bin/python
Then you can use, the classical command for manual install of a python package :
python setup.py build
python setup.py install
=====Manual import of virtualenv packages =====
In some cases, for example when using virtualenvs in Coppeliasim python scripts, the virtualenv modules must be manually added to the import path; Example with **pyproj**
import sys
# replace /path/to/myenv with appropriate path to virtual environment
sys.path.append('/path/to/myenv/lib/pythonX.X/site-packages')