快速问题。
有没有办法确保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
有什么解决办法吗?
更新:为了响应mechmind,我在Ubuntu 12.04中使用带有virtualenv --distributed myenv的pip安装了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.
所以也许这取决于系统。
谢谢!
刚刚尝试了pip
numpy
和matplotlib
,并pip
正确解决了依赖项检查 - numpy 首先构建。 在 ubuntu 10.10 的旧库存点上试用。
编辑:在玩pip
和virtualenv
之后,我意识到依赖关系检查实际上只有在发现依赖关系时才有效,即当安装,删除并再次安装包时。
因此,实际的解决方案将涉及在需求文件中重新排序包(对于只有两个顺序错误的包的简单情况,您可以反转需求文件:sort -r | xargs pip install