配置应用程序以部署到Heroku

时间:2015-12-07 20:52:09

标签: python heroku flask

我今天早些时候在Heroku deploy problem发布了一个问题。

我有很多好的建议,但无法让我的应用程序部署在Heroku上。

我已将应用程序剥离为15行代码。该应用仍然拒绝部署。

这是错误:

ImportError: No module named 'main'
File "/app/.heroku/python/bin/gunicorn", line 11, in <module>
sys.exit(run())
WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()

这是我的应用程序目录:

enter image description here

这是Procfile

的内容
web: gunicorn main:app --log-file=-

这是main.py文件的内容:

import os
from flask import Flask

app = Flask(__name__, instance_relative_config=True)
app.config.from_object('config')
app.config.from_pyfile('config.py')

@app.route('/')
def hello():
   return 'Hello World!'

 if __name__ == '__main__':
# REMEMBER: Never have this set to True on Production
# manager.run()
  app.run()

我已经按照所有教程,阅读了模块和软件包,在本网站上看到了建议,阅读了Explore Flask和The Official Flask文档。他们都有一些建立应用程序的变体,很难理解什么是正确的方式或文件应该在哪里。

1 个答案:

答案 0 :(得分:0)

您的示例代码中存在几个问题:

  1. 你需要一个包裹。
  2.   

    没有名为&#39; main&#39;

    的模块
    在proc文件中

    ,你说:main.py。正确的方法是在web: gunicorn blackduckflock.main:app --log-file=- 旁边添加instance_relative_config=True,因此python知道这是一个包。将您的proc文件编辑为:

    blackduckflock
    ├── blackduckflock
    │   ├── __init__.py
    │   └── main.py
    ├── config.py
    ├── instance
    │   └── config.py
    └── Procfile
    
    1. 实例文件夹。
    2. 由于您指定gunicorn blackduckflock.main:app,我认为正确组织项目的方式如下:

      {{1}}

      您可以运行{{1}}以查看它是否有效。

相关问题