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

How to create an empty python virtual environment

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

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

最后一个命令的输出是一个空列表,甚至 pip 都没有安装。我想用 python venv 命令获得相同的结果(或者至少有 "minimal" 虚拟环境只安装了 pip)。当我 运行 python -m venv test 新环境包含所有可用的包 "system-wide":

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 purgepip freezereturns空列表

编辑:

尝试以下操作:

$ 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,要创建一个没有 "system wide" pip 包的 'fresh' 虚拟环境,请尝试以下操作:

# 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) 

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