Heroku Gunicorn Procfile

Cas*_*rTN 6 python heroku flask gunicorn

我很难找到使用带有gunicorn和Heroku的烧瓶创建Procfiles的文档.在某处我发现语法是: web: gunicorn my_folder.my_module:app.但我不能让它发挥作用.它只适用于我的python脚本:hello.py在应用程序的根文件夹中.当我把它放在一个名为app的子文件夹中并创建一个Procfile时:web: gunicorn app.hello:app它不起作用.只有在我使用时web: gunicorn hello:app,我的python脚本才在根文件夹中.有人可以在Heroku上向我解释Procfiles for gunicorn的正确语法,以及当python脚本在子文件夹中时如何使其工作?

kri*_*ina 14

Gunicorn带一个标志,--chdir可以让你选择你的Python应用程序所在的目录.所以,如果你有一个目录结构,如:

my-project/
  Procfile
  my_folder/
    my_module.py
Run Code Online (Sandbox Code Playgroud)

my_module.py包含:

app = Flask(__name__, ...)
Run Code Online (Sandbox Code Playgroud)

您可以将以下内容放入Procfile:

web: gunicorn --chdir my_folder my_module:app
Run Code Online (Sandbox Code Playgroud)

  • `web: Gunicorn app:app` 第一个 `app` 代表运行应用程序的 python 文件的名称或其所在模块的名称。第二个 `app` 代表在 .py 中命名的应用程序名称文件。只是想添加,因为它有助于澄清 procfile 的内容及其语法。例如,您的应用程序名称将是以下代码中的 my_awesome_app: `if __name__ == '__main__':` `my_awesome_app.run()` (8认同)