loading...

SetUp Python virtual environment

magesh236 profile image Mageshwaran ・2 min read
What is virtual environment?

A tool to create an isolated environment to run the different projects with their own dependence.

For example: If you want to run 2 django or flask projects in the same machine with different package version. You have to isolate them into different environments.
django1.2 in venv1
django2.2 in venv2

virtualenv

run this to install

pip install virtualenv
Enter fullscreen mode Exit fullscreen mode

check it by running this in terminal
this will list out the available commands

virtualenv
or
virtualenv --help
Enter fullscreen mode Exit fullscreen mode

syntax to create a virtual environment

 Usage: virtualenv [OPTIONS] DEST_DIR
 -p PYTHON_EXE, --python=PYTHON_EXE
Enter fullscreen mode Exit fullscreen mode

PYTHON_EXE is for which version of python you are going to create a virtual environment

Create a virtual environment with name as venv, this will create it in the current working director

 virtualenv --python=python3.7 venv
Enter fullscreen mode Exit fullscreen mode

to create at a specific directory you can go to the path or else you can run the command with the path of venv

 virtualenv --python=python3.7 test/venv
Enter fullscreen mode Exit fullscreen mode

Virtual environment is created but we dont have the access for it, need to be activated

 source venv/bin/activate
Enter fullscreen mode Exit fullscreen mode

(venv) mac@macLBP %
this will activate the environment, you can see the venv in terminal and to disabled it just run

deactivate
Enter fullscreen mode Exit fullscreen mode

to create environment for python 2, by default python will be taken a python2(in my machine its python 2 for you it may vary)

 virtualenv --python=python testenv1
Enter fullscreen mode Exit fullscreen mode

to create environment for python 3.7

 virtualenv --python=python3.7 testenv2
Enter fullscreen mode Exit fullscreen mode

to create environment for python 3.8

 virtualenv --python=python3.8 testenv3
Enter fullscreen mode Exit fullscreen mode

finally you can install any packages as you want, package dependence in one project will not affect others

virtualenv --python=python3 test/venv
cd test 
source venv/bin/activate 
python -V
    Python 3.7.3
pip freeze
pip install flask
pip freeze
    click==7.1.2
    Flask==1.1.2
    itsdangerous==1.1.0
    Jinja2==2.11.2
    MarkupSafe==1.1.1
    Werkzeug==1.0.1
deactivate
Enter fullscreen mode Exit fullscreen mode

Discussion

pic
Editor guide
Collapse
robkenis profile image
Rob Kenis

Since python3, I've been using python3 -m venv venv. Is there anything virtualenv does extra compared to the other solution ?

Collapse
magesh236 profile image
Mageshwaran Author

they both do the same thing, but with some difference

virtualenv which works in both python 2 and 3 and this will copy the python binary file to the venv location, for more you can check here
virtualenv.pypa.io/en/latest/
I tend to used to this method, you know people follow their own way of doing thing