我试图在heroku上运行一个简单的照片组合网站,用Flask编写,照片信息存储在postgresql数据库中,使用Flask-SQLAlchemy访问。一切都在我的本地机器上完美运行,我已经创建了一个heroku应用程序,可以毫无问题地推送它。
根据使用Flask的官方heroku教程,我的Procfile包含web: gunicorn app:app --log-file=-
。
在我的requirements.txt文件中,我已经包含了gunicorn==19.2.1
当我运行git push heroku master
时,我的代码上传时没有任何问题。所有依赖项都安装得很好,但是dyno在启动时立即崩溃。这是日志:
2015-02-17T03:50:12.108340+00:00 heroku[api]: Deploy 54f0d35 by email@gmail.com
2015-02-17T03:50:12.108340+00:00 heroku[api]: Release v15 created by email@gmail.com
2015-02-17T03:50:12.271089+00:00 heroku[web.1]: State changed from crashed to starting
2015-02-17T03:50:15.398170+00:00 heroku[web.1]: Starting process with command `gunicorn app:app --log-file=-`
2015-02-17T03:50:16.433659+00:00 app[web.1]: bash: gunicorn: command not found
2015-02-17T03:50:17.209823+00:00 heroku[web.1]: Process exited with status 127
2015-02-17T03:50:17.226212+00:00 heroku[web.1]: State changed from starting to crashed
我已经尝试了我能想到的一切。重新启动应用程序没有任何好处,也没有删除requirements.txt中的gunicorn版本规范。
另一个stackoverflow线程建议强制使用heroku run pip install gunicorn
进行gunicorn安装,这会产生一条消息说fireicorn已成功安装,但如果我立即运行heroku run gunicorn
,我会遇到另一个gunicorn: command not found
我遗失了什么?提前致谢。 requirements.txt包含:
Cython==0.20.2
Flask==0.10.1
Flask-SQLAlchemy==2.0
Flask-Script==2.0.5
Jinja2==2.7.3
Mako==1.0.1
MarkupSafe==0.23
Pygments==1.6
SQLAlchemy==0.9.8
Sphinx==1.2.2
Twisted==13.2.0
Werkzeug==0.10.1
alembic==0.7.4
altgraph==0.10.2
backports.ssl-match-hostname==3.4.0.2
bdist-mpkg==0.5.0
certifi==14.05.14
docutils==0.12
flask-heroku==0.1.9
gunicorn==19.2.1
itsdangerous==0.24
macholib==1.5.1
matplotlib==1.3.1
mock==1.0.1
modulegraph==0.10.4
nose==1.3.3
numpy==1.8.0rc1
pandas==0.14.1
psycopg2==2.6
py2app==0.7.3
pyOpenSSL==0.13.1
pyenchant==1.6.6
pyobjc-core==2.5.1
pyobjc-framework-Accounts==2.5.1
pyobjc-framework-AddressBook==2.5.1
pyobjc-framework-AppleScriptKit==2.5.1
pyobjc-framework-AppleScriptObjC==2.5.1
pyobjc-framework-Automator==2.5.1
pyobjc-framework-CFNetwork==2.5.1
pyobjc-framework-Cocoa==2.5.1
pyobjc-framework-Collaboration==2.5.1
pyobjc-framework-CoreData==2.5.1
pyobjc-framework-CoreLocation==2.5.1
pyobjc-framework-CoreText==2.5.1
pyobjc-framework-DictionaryServices==2.5.1
pyobjc-framework-EventKit==2.5.1
pyobjc-framework-ExceptionHandling==2.5.1
pyobjc-framework-FSEvents==2.5.1
pyobjc-framework-InputMethodKit==2.5.1
pyobjc-framework-InstallerPlugins==2.5.1
pyobjc-framework-InstantMessage==2.5.1
pyobjc-framework-LatentSemanticMapping==2.5.1
pyobjc-framework-LaunchServices==2.5.1
pyobjc-framework-Message==2.5.1
pyobjc-framework-OpenDirectory==2.5.1
pyobjc-framework-PreferencePanes==2.5.1
pyobjc-framework-PubSub==2.5.1
pyobjc-framework-QTKit==2.5.1
pyobjc-framework-Quartz==2.5.1
pyobjc-framework-ScreenSaver==2.5.1
pyobjc-framework-ScriptingBridge==2.5.1
pyobjc-framework-SearchKit==2.5.1
pyobjc-framework-ServiceManagement==2.5.1
pyobjc-framework-Social==2.5.1
pyobjc-framework-SyncServices==2.5.1
pyobjc-framework-SystemConfiguration==2.5.1
pyobjc-framework-WebKit==2.5.1
pyparsing==2.0.1
python-dateutil==1.5
pytz==2013.7
scipy==0.13.0b1
six==1.4.1
sympy==0.7.5
tornado==4.0.1
virtualenv==12.0.7
wsgiref==0.1.2
xattr==0.6.4
zope.interface==4.1.1