Procfile gunicorn自定义模块名称

Cor*_*hin 7 heroku flask gunicorn foreman

上下文: 我正在编写一个中型烧瓶应用程序(10-15个视图),在此过程中,我希望以一种易于维护和可扩展的方式组织代码(不像大多数Flask应用程序那样是单片文件) ).

该应用程序的结构模仿文档如下:

/AwesomeHackings
    /ENV
    /AwesomeHackings
        /models
        /static
        /templates
        /__init__.py
        /awesome.py
        /awesome.cfg
    /Procfile
    /README.MD
    /requirements.txt
    /run.py
Run Code Online (Sandbox Code Playgroud)

问题: 我无法让工头使用未命名为"app"的烧瓶应用程序.我希望run.py成为我的应用程序的入口点.

我正在使用gunicorn + gevent,我目前的Procfile包含:

web: gunicorn -w 2 -b 0.0.0.0:$PORT -k gevent app:run
Run Code Online (Sandbox Code Playgroud)

我一直在run.py用来测试应用程序:

from AwesomeHackings import awesome
awesome.app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)

因此,我认为我可以简单地替换runapp在Procfile,但在执行的时候foreman start,gunicorn失败有关模块的无意义的废话.

Cor*_*hin 10

我在Django的文档中找到了解决方案.gunicorn的主要参数是模块:

gunicorn [OPTIONS] APP_MODULE

APP_MODULE模式在哪里MODULE_NAME:VARIABLE_NAME

虽然语法似乎是一个关键字参数app:someIdentifier,因为所有教程都使用了一个名为的模块app,但事实并非如此.我的情况的正确论据是run:app.