0

I'm trying to run a Flask app on Heroku and I'm getting some frustrating results. I'm not interested in the ops side of things. I just want to upload my code and have it run. Pushing to the Heroku git remote works fine (git push heroku master), but when I tail the logs (heroku logs -t) I see the following error:

2014-11-08T15:48:50+00:00 heroku[slug-compiler]: Slug compilation started
2014-11-08T15:48:58+00:00 heroku[slug-compiler]: Slug compilation finished
2014-11-08T15:48:58.607107+00:00 heroku[api]: Deploy 2ba1345 by <my-email-address>
2014-11-08T15:48:58.607107+00:00 heroku[api]: Release v5 created by <my-email-address>
2014-11-08T15:48:58.723704+00:00 heroku[web.1]: State changed from crashed to starting
2014-11-08T15:49:01.458713+00:00 heroku[web.1]: Starting process with command `gunicorn app:app`
2014-11-08T15:49:02.538539+00:00 app[web.1]: bash: gunicorn: command not found
2014-11-08T15:49:03.340833+00:00 heroku[web.1]: Process exited with status 127
2014-11-08T15:49:03.355031+00:00 heroku[web.1]: State changed from starting to crashed
2014-11-08T15:49:04.462248+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=blueprnt.herokuapp.com request_id=e7f92595-b202-4cdb-abbc-309dcd3a04bc fwd="54.163.35.91" dyno= connect= service= status=503 bytes=

Here's the pertinent files:

Procfile

web: gunicorn app:app
heroku ps:scale web

requirements.txt

Flask==0.10.1
Flask-Login==0.2.11
Flask-WTF==0.10.2
Jinja2==2.7.3
MarkupSafe==0.23
Unidecode==0.04.16
WTForms==2.0.1
Werkzeug==0.9.6
awesome-slugify==1.6
blinker==1.3
gnureadline==6.3.3
gunicorn==19.1.1
ipdb==0.8
ipython==2.3.0
itsdangerous==0.24
peewee==2.4.0
py-bcrypt==0.4
pytz==2014.7
regex==2014.10.24
wsgiref==0.1.2
wtf-peewee==0.2.3

app.py (the run portion)

# Run application
if __name__ == '__main__':
    # from os import environs
    # app.run(debug=False, port=environ.get("PORT", 5000), processes=2)
    app.run(debug=True, port=33507)

I've tried both the answer from this thread and from this thread. When I try to shell into Heroku to investigate (heroku run bash) it appears that something is wrong with my app's environment:

(blueprnt)☀  website [master] heroku run bash
/Users/andymatthews/.rvm/gems/ruby-1.9.3-p125/gems/heroku-3.15.0/lib/heroku/helpers.rb:91: warning: Insecure world writable dir /usr/local in PATH, mode 040777
Running `bash` attached to terminal... up, run.8540
~ $ ls
Gruntfile.js  __init__.py  fixtures   models.py     requirements.txt       static     vendor
Procfile      app.py       forms.py   node_modules  settings.py        templates  views
README.md     blueprnt.db  mixins.py  package.json  site-theme-assets.zip  utils.py
~ $ pwd
/app
~ $ whoami
u15880
~ $ which pip
~ $ which git
/usr/bin/git
~ $ pip install -r requirements.txt
bash: pip: command not found

Would really love some assistance. In the past when I've deployed apps to Heroku, I haven't had any problem. But this app is more complicated than those others.

Community
  • 1
  • 1
commadelimited
  • 5,656
  • 6
  • 41
  • 77
  • You don't seem to import `app` into `app.py`. Is that just an omission? – dirn Nov 08 '14 at 16:31
  • you could try redeploying it again, just delete that app and make it again following the step stated at https://devcenter.heroku.com/articles/getting-started-with-python#introduction – freeforall tousez Nov 08 '14 at 22:47
  • Have you specifically set your Heroku project to use Python? If not, Heroku sets projects containing `package.json` to the node buildpack. Please see [this answer](https://stackoverflow.com/questions/20171169/why-is-my-flask-app-being-detected-as-node-js-on-heroku/20171188#20171188) for more details and a solution (if this is indeed your problem). – jonafato Nov 09 '14 at 20:01
  • @jonfato, this was the problem. Because of the package.json file, Heroku thought it was a Node project. I explicitly set the buildpack_url and it worked great. If you'll create an actual answer, I'll be happy to select it. – commadelimited Nov 10 '14 at 03:43

0 Answers0