I'm using Ubuntu system with python 3.5 installed by default.
When I use the venv
module to create virtual environment, I can't find the standard library in my virtual environment but only the binary file for python interpreter. However I can import standard library modules in my python script when I switch to use this virtual environment.
So how does venv
work? Does the newly created virtual environment just use the standard library of the system python? If so, what if I want to create a completely self-contained virtual environment? Is it possible to achieve this by the venv
module? By the way, I used conda
before. conda
can create virtual environment with python different with the system version. Can venv
do this job?
It's because
venv
uses the systems standard library. it will be a problem if you update actual Python because version mismatch can happen there. Take a look at the following link you will get more information.https://virtualenv.pypa.io/en/stable/
A Virtual Environment is a tool to keep the dependencies required by different projects in separate places, by creating virtual Python environments for them. It solves the “Project X depends on version 1.x but, Project Y needs 4.x” dilemma, and keeps your global site-packages directory clean and manageable
virtualenv creates a folder which contains all the necessary executables to use the packages that a Python project would need.
Since you are using python 3, Use the venv module, which you can install through apt-get.
$ sudo apt-get install python3.5-venv
Then you can set up your virtual environment with
$ pyvenv-3.5 /path/to/directory
and activate the environment with
$ source /path/to/directory/bin/activate
Also This may help you.