Where is the standard library in python virtual en

2019-09-16 03:15发布

问题:

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?

回答1:

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/



回答2:

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.