问题
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.
来源:https://stackoverflow.com/questions/45853321/where-is-the-standard-library-in-python-virtual-environment