我正在尝试在Heroku上部署使用matplotlib的Web应用程序。这个question是相关的,但似乎没有解决我的具体问题。更确切地说,我正在部署重复的应用程序“暂存”以进行测试。当我运行命令时:
git push staging master
将我的应用程序推送到Heroku我得到了意想不到的Heroku推送拒绝:
============================================================================
BUILDING MATPLOTLIB
matplotlib: 1.1.1
python: 2.7.2 (default, Oct 31 2011, 16:22:04) [GCC 4.4.3]
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']
============================================================================
BUILDING MATPLOTLIB
matplotlib: 1.1.1
python: 2.7.2 (default, Oct 31 2011, 16:22:04) [GCC 4.4.3]
platform: linux2
REQUIRED DEPENDENCIES
numpy: no
* You must install numpy 1.4 or later to build
* matplotlib.
----------------------------------------
Command python setup.py egg_info failed with error code 1 in /tmp/build_sj82km4g47z3/.heroku/venv/build/matplotlib
Storing complete log in /app/.pip/pip.log
! Heroku push rejected, failed to compile Python app
To git@heroku.com:warm-atoll-3630.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:warm-atoll-3630.git'
出乎意料,因为我以为我已经解决了这个问题。确实我的生产应用程序工作正常。我通过提供一个两层的需求文件来解决它。
requirements.txt:
numpy==1.6.2
-r ./prod-requirements.txt
PROD-requirements.txt:
matplotlib==1.1.1
other requirements...
显然,我忘记了我是如何解决这个问题的。我记得因为matplotlib依赖numpy的方式以及Heroku如何通过pip安装需求这很棘手。这是我所指的issue。可以做些什么?提前谢谢。
答案 0 :(得分:3)
我通过从prod-requirements.txt文件中删除matplotlib解决了这个问题(请参阅原始问题)。然后部署,然后将matplotlib添加到我的prod-requirements.txt文件中,然后再次部署。我假设这是通过require.txt实现的目标:
numpy==1.6.2
-r ./prod-requirements.txt
然后将matplotlib = 1.1.1放在prod-requirements文件中。 但显然不是。似乎我只用一个需求文件就可以实现这一点。