DEV Community

Mageshwaran
Mageshwaran

Posted on

6

SetUp Python virtual environment

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

Do your career a big favor. Join DEV. (The website you're on right now)

It takes one minute, it's free, and is worth it for your career.

Get started

Community matters

Top comments (2)

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
 
max236 profile image
Mageshwaran β€’ β€’ Edited

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

Sentry image

See why 4M developers consider Sentry, β€œnot bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

πŸ‘‹ Kindness is contagious

Dive into an ocean of knowledge with this thought-provoking post, revered deeply within the supportive DEV Community. Developers of all levels are welcome to join and enhance our collective intelligence.

Saying a simple "thank you" can brighten someone's day. Share your gratitude in the comments below!

On DEV, sharing ideas eases our path and fortifies our community connections. Found this helpful? Sending a quick thanks to the author can be profoundly valued.

Okay