[英]Heroku “Push rejected, failed to compile Python app”
I'm trying to push my Flask web application to Heroku but get the following error when I try to push to Heroku: 我试图将Flask Web应用程序推送到Heroku,但是当我尝试推送到Heroku时出现以下错误:
Fetching repository, done.
Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 339 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
-----> Python app detected
-----> No runtime.txt provided; assuming python-2.7.6.
-----> Using Python runtime (python-2.7.6)
-----> Installing dependencies using Pip (1.5.4)
Downloading/unpacking distribute==0.6.24 (from -r requirements.txt (line 4))
Running setup.py (path:/tmp/pip_build_u5791/distribute/setup.py) egg_info for package distribute
warning: no files found matching 'Makefile' under directory 'docs'
warning: no files found matching 'indexsidebar.html' under directory 'docs'
Installing collected packages: distribute
Running setup.py install for distribute
Before install bootstrap.
Scanning installed packages
Setuptools installation detected at /app/.heroku/python/lib/python2.7/site-packages/setuptools-2.1-py2.7.egg
Egg installation
Patching...
Renaming /app/.heroku/python/lib/python2.7/site-packages/setuptools-2.1-py2.7.egg into /app/.heroku/python/lib/python2.7/site-packages/setuptools-2.1-py2.7.egg.OLD.1394497694.33
Patched done.
Relaunching...
Traceback (most recent call last):
File "<string>", line 1, in <module>
NameError: name 'install' is not defined
Complete output from command /app/.heroku/python/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip_build_u5791/distribute/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-gbF0K5-record/install-record.txt --single-version-externally-managed --compile:
Before install bootstrap.
Scanning installed packages
Setuptools installation detected at /app/.heroku/python/lib/python2.7/site-packages/setuptools-2.1-py2.7.egg
Egg installation
Patching...
Renaming /app/.heroku/python/lib/python2.7/site-packages/setuptools-2.1-py2.7.egg into /app/.heroku/python/lib/python2.7/site-packages/setuptools-2.1-py2.7.egg.OLD.1394497694.33
Patched done.
Relaunching...
Traceback (most recent call last):
File "<string>", line 1, in <module>
NameError: name 'install' is not defined
----------------------------------------
Cleaning up...
Command /app/.heroku/python/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip_build_u5791/distribute/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-gbF0K5-record/install-record.txt --single-version-externally-managed --compile failed with error code 1 in /tmp/pip_build_u5791/distribute
Storing debug log for failure in /app/.pip/pip.log
! Push rejected, failed to compile Python app
To git@heroku.com:censusmappingandmarketing.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:censusmappingandmarketing.git'
It looked like this had a solution to my problem so I removed distribute from my requirements.txt. 看来这可以解决我的问题,所以我从我的requirements.txt中删除了分发。
When I do that, I can push to Heroku. 当我这样做时,我可以推送到Heroku。 But the website just has "Application Error", as shown below. 但是该网站仅显示“应用程序错误”,如下所示。
My requirements.txt is: 我的requirements.txt是:
Flask==0.9
Jinja2==2.6
Werkzeug==0.8.3
gunicorn==0.17.2
virtualenv==1.8.4
My Heroku Logs are: 我的Heroku日志是:
2014-03-11T00:43:07.000598+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path=/ host=censusmappingandmarketing.herokuapp.com request_id=b86bab40-2441-41ee-bf25-e975dcb90c2d fwd="208.91.53.193" dyno= connect= service= status=503 bytes=
I forgot to add a Procfile for Heroku. 我忘了为Heroku添加Procfile。 It needed to be: 它必须是:
web: gunicorn app:app
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.