如何创建一个空的python虚拟环境

时间:2019-09-18 20:32:48

标签: python python-3.x python-venv

使用conda创建新环境时,我们得到一个完全空的虚拟环境:

conda create --name=test
conda activate test
conda list

最后一条命令的输出为空列表,甚至没有安装pip。我想使用python venv命令获得相同的结果(或者至少安装了pip的“最小”虚拟环境)。当我运行python -m venv test时,新环境包含“系统范围内”所有可用的软件包:

python -m venv test
source test/bin/activate
pip freeze

输出一长串软件包。

根据the documentation,该命令具有--system-site-packages参数,但默认情况下它看起来像是打开的,我找不到禁用它的方法。我也尝试使用旧的virtualenv --clear参数,但显然没有考虑。

编辑:

原来是环境模块module命令干扰python模块(https://modules.readthedocs.io/en/latest/)。运行module purge后,pip freeze返回空列表。

2 个答案:

答案 0 :(得分:1)

编辑:

尝试以下操作:

$ python3 --version
Python 3.7.4

$ python3 -m venv test_venv

$ source ./test_venv/bin/activate

$ pip list

Package    Version
---------- -------
pip        19.0.3 
setuptools 40.8.0 
You are using pip version 19.0.3, however version 19.2.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
(test_venv) 

$ pip freeze
(test_venv) 

如果安装了virtualenv,要创建一个没有“系统范围” pip程序包的“新鲜”虚拟环境,请尝试以下操作:

# create new folder:
$ mkdir test_venv

# create virtual env:
$ virtualenv test_venv/

# activate virtual env:
$ source ./test_venv/bin/activate

# list packages in virtual env (test_venv):
$ pip list

Package    Version
---------- -------
pip        19.2.3 
setuptools 41.2.0 
wheel      0.33.6 
(test_venv) 

答案 1 :(得分:1)

当我们使用pyvenv.cfg创建虚拟环境时,配置文件venv应该位于虚拟环境的根目录中。根据{{​​3}},如果先前运行的include-system-site-packages没有使用false选项,则该文件应包含带有venv键的行,并将其设置为--system-site-packages