我有两台 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