【问题标题】:pip dependency resolution fails when install both numpy and matplotlib安装 numpy 和 matplotlib 时 pip 依赖解析失败
【发布时间】:2013-10-01 14:36:26
【问题描述】:

如果我运行,则从干净的 python 2.7.3 安装开始

pip install -r requirements.txt

带有以下requirements.txt:

Flask==0.10.1
Flask-Cache==0.12
Jinja2==2.7.1
MarkupSafe==0.18
Werkzeug==0.9.4
gunicorn==18.0
itsdangerous==0.23
wsgiref==0.1.2
numpy==1.7.1
PIL==1.1.7
matplotlib==1.2.1

然后 pip 尝试在 numpy 之前安装 matplotlib 并失败:

============================================================================
BUILDING MATPLOTLIB
            matplotlib: 1.2.1
                python: 2.7.3 (default, Jan  2 2013, 13:56:14)  [GCC 4.7.2]
              platform: linux2

REQUIRED DEPENDENCIES
                 numpy: no
                        * You must install numpy 1.4 or later to build
                        * matplotlib.
Complete output from command python setup.py egg_info:
basedirlist is: ['/usr/local', '/usr']
============================================================================

但是,如果我这样做了

pip install numpy
pip install -r requirements.txt

然后一切正常。这是怎么回事?

【问题讨论】:

标签: python numpy matplotlib pip


【解决方案1】:

pip 并没有天真地区分“运行时”和“编译时”要求。 numpymatplotlib 都有重要的 c/c++ 扩展,需要以正确的顺序完成。

最近有一个与此相关的 PR #2445(我认为)将使其进入 1.3.1

【讨论】:

    【解决方案2】:

    PIP 按字母顺序安装,因此在您的需求脚本中,它会尝试在 numpy 之前安装 matplotlib。由于 matplotlib 依赖于 numpy,它会给出您收到的错误。在pip install -r requirements.txt 之前执行pip install numpy 会在通过requirements.txt 之前安装numpy,所以这次当它到达matplotlib 时,已经安装了numpy。

    另请参阅:pip freeze and order of dependencies

    【讨论】:

      猜你喜欢
      • 2020-10-04
      • 2015-11-22
      • 2019-09-15
      • 1970-01-01
      • 2020-12-27
      • 1970-01-01
      • 1970-01-01
      • 2011-11-27
      • 2018-01-13
      相关资源
      最近更新 更多