为什么pip install requirements.txt安装额外的包?

时间:2017-03-21 05:38:08

标签: python pip requirements.txt

我有一个存储库,其中包含一个膨胀的requirements.tx,我想要清理它。使用pipreqs我已将requirements.txt设置为我的存储库所需的最小程序包集。为了测试这个,我设置了一个virtualenv来安装软件包,然后运行我所有的单元测试,以确保它们满意。

virtualenv temp_venv --no-site-packages
source temp_venv/bin/activate
pip install -r requirements.txt

哪个运行正常,但我看到收集并安装了一大堆额外的包。为什么?是否根据需要确定了这些包装,并进行了安装?如果是这样,我是否应该将它们包含在requirements.txt?

2 个答案:

答案 0 :(得分:2)

是。这些包是依赖项的依赖项。

但不,你不应该直接指定它们。自动工具知道以递归方式下载依赖项,这将显着增加维护开销。

答案 1 :(得分:1)

这可能是因为requirements.txt中写入的库的依赖关系。例如:如果您已编写scipy因为要求numpy也将安装,因为scipy依赖于numpy