保持pip冻结的安装顺序

时间:2012-11-07 05:40:26

标签: python package pip

快速提问。

有没有办法确保pip freeze > requirements.txt保持软件包的安装顺序?这对我来说是一个问题,因为我在requirements.txt

中不断得到类似的内容
matplotlib==1.1.1
numpy==1.6.2

因此,当我尝试使用pip install -r requirements.txt进行安装时会发生错误,因为numpy是matplotlib的依赖项,所以我必须首先手动安装numpy,然后重新运行pip install -r requirements.txt

有什么问题吗?

UPDATE :为了回应mechmind,我使用pip与virtualenv --distribute myenv在Ubuntu 12.04中安装了matplotlib和numpy。安装完成后,我收到了这个冻结文件:

argparse==1.2.1
distribute==0.6.28
matplotlib==1.1.1
numpy==1.6.2
wsgiref==0.1.2

然后当我尝试在另一个虚拟环境中重新安装时,我收到以下错误:

REQUIRED DEPENDENCIES

                 numpy: no

                        * You must install numpy 1.4 or later to build

                        * matplotlib.

所以也许它取决于系统。

谢谢!

1 个答案:

答案 0 :(得分:0)

刚刚尝试pip numpymatplotlib以及pip正确解析了相关性检查 - 首先构建numpy。 尝试从ubuntu 10.10获得旧股票。

编辑:在使用pipvirtualenv后,我意识到依赖性检查实际上只有在发现了依赖项时才有效,即在安装,删除和安装软件包时再次。

因此,实际的解决方案将涉及在请求文件中重新排序包(对于简单的情况,当只有两个包具有错误的订单时,您可以只撤消需求文件:sort -r | xargs pip install