为什么“pip freeze”会打印出我没有安装的包?

为什么“pip freeze”会打印出我没有安装的包?

我有两台 Ubuntu 18 机器。在一台机器上,我全新安装了 Ubuntu,并使用 创建了一个虚拟环境python3 -m venv env。当我使用 激活此环境source env/bin/activate然后运行 ​​时pip freeze,它不会打印任何内容。这是我所期望的,因为我还没有为这个虚拟环境安装任何 Python 包。

但是,在第二台机器上,我安装了较旧的 Ubuntu,它有点混乱,并且已经安装了许多软件包。我还创建了一个虚拟环境并激活了它,但是当我在pip freeze这里运行时,它会打印出大量 Python 包。这让我很惊讶,因为我认为这pip freeze会打印出已在该环境中安装的 Python 包;而在这种情况下,我没有安装任何 Python 包。此外,我查看了site-packages虚拟环境的文件夹,它不包含任何这些 Python 包。

pip freeze所以我的问题是:当我实际上并没有在环境中安装这些包时,为什么会打印出所有这些包?可能的原因有哪些?

答案1

您需要使用 -l 或 --local 选项来仅冻结虚拟环境中的本地包(而不是全局包)

pip freeze -l > requirements.txt 

相关内容