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

mja*_*sie 5 python python-3.x python-venv

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

conda create --name=test
conda activate test
conda list
Run Code Online (Sandbox Code Playgroud)

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

python -m venv test
source test/bin/activate
pip freeze
Run Code Online (Sandbox Code Playgroud)

输出一长串包。

根据文档,该命令具有--system-site-packages参数,但看起来默认情况下已启用,我找不到禁用它的方法。我也试过使用旧的 virtualenv--clear参数,但显然它没有被考虑在内。

编辑:

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

Hua*_*uan 5

编辑:

尝试以下操作:

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

Run Code Online (Sandbox Code Playgroud)

如果您已经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) 
Run Code Online (Sandbox Code Playgroud)

  • 我尝试过调用 python3 -m venv ./my_venv/ 但虚拟环境涉及系统范围的包。我的目的是创建一个干净的虚拟环境。激活后,pip list 给出了相当多的包。我没有在 venv 命令中放置 --system-site-packages 参数。有人有类似的经历吗?此外 pyenv.cfg 将 include-system-site-packages 设置为 false。另一方面,pip list 给出了系统范围内安装的一长串软件包,我不希望这些软件包出现在虚拟环境中。 (6认同)
  • 有人找到解决方案了吗?我的行为与@MiroslavRadojević 完全相同,这非常烦人。 (2认同)