通过pip在virtualenv中安装Matploblib以推送到Heroku

时间:2012-10-30 00:15:30

标签: python heroku

如何在Heroku上安装numpy,scipy,matplotlib?

所以首先在本地我正在做pip install matplotlib - >我得到一个错误说安装numpy .. 所以我做pip install numpy并收到错误说

  File "/home/sghose/myapp/helloflask/build/numpy/numpy/distutils/command/build_src.py", line 385, in generate_sources

    source = func(extension, build_dir)

  File "numpy/core/setup.py", line 410, in generate_config_h

    moredefs, ignored = cocache.check_types(config_cmd, ext, build_dir)

  File "numpy/core/setup.py", line 41, in check_types

    out = check_types(*a, **kw)

  File "numpy/core/setup.py", line 271, in check_types

    "Cannot compile 'Python.h'. Perhaps you need to "\

SystemError: Cannot compile 'Python.h'. Perhaps you need to install python-dev|python-devel.

----------------------------------------
Command python setup.py egg_info failed with error code 1 in /home/sghose/myapp/helloflask/build/numpy

......我现在该怎么办?通常情况下我会做apt-get install python-numpy ...但是我认为pip不会接受它然后当我推动时Heroku会不高兴...我也看到他们之前重新编译numpy的帖子,scipy,matplotlib和更改过的vars,以便他们指向heroku包(http://stackoverflow.com/questions/9819968/running-scipy-on-heroku)?这还有必要吗?听起来有些痛苦> _<

2 个答案:

答案 0 :(得分:3)

Heroku如何安装依赖项

当您将代码推送到Heroku时,Heroku将查看您的requirements.txt文件并安装其中列出的软件包。

如何列出这些依赖项

Heroku并不关心你如何创建该文件(手动或使用pip freeze),所以没有什么可以阻止你将包添加到requirements.txt文件中,你只需要添加一个在那里划出要求的名称。

如何解决您的问题

matplotlib行添加到requirements.txt文件后,您可以将代码推送到Heroku,然后按matplotlib要求推送will figure out what to do

如果这不起作用,你可以随时联系Heroku,但如果唯一的要求是python标题,如果Heroku上没有它,我会感到惊讶。


关于本地安装,Ben Mezger的回答是对的,您只需要:

  • apt-get install python标头(这些不是一个python包,所以你不用pip安装它们)。 Heroku可能已经有了。
  • 使用pip安装软件包,然后正确编译。

答案 1 :(得分:0)

您需要安装python-dev

apt-get install python-dev

apt-get install python-devel