【问题标题】:How to run gunicorn inside python not as a command line?如何在 python 中运行 gunicorn 而不是作为命令行?
【发布时间】:2025-12-30 01:00:12
【问题描述】:

我有一个烧瓶应用程序。

我用这个命令在生产环境中运行它:

python -m gunicorn -w 1 -b 0.0.0.0:5000 "path.to.wsgi:return_app()"

相反,我想在 my_file.py 中运行它

我需要一个函数来运行,它应该接受应用程序对象和端口绑定以及工作人员的数量

我该怎么做?

我需要这样的伪代码

import gunicorn

app = return_app()

gunicorn(workers=1, ip="0.0.0.0", port=5000, app=app)

对我来说最重要的部分是app=app 部分

主要的一点是,我想将 app 对象用作 Flask() 的一个实例。我想直接将 app 对象提供给 gunicorn,而不是通过在字符串中对其进行寻址

我尝试过的: 我打开了 gunicorn 库 ma​​in.py 文件

from gunicorn.app.wsgiapp import run
run()

看看它是如何工作的,但无法弄清楚

def run():
    """\
    The ``gunicorn`` command line runner for launching Gunicorn with
    generic WSGI applications.
    """
    from gunicorn.app.wsgiapp import WSGIApplication
    WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()

【问题讨论】:

    标签: python flask gunicorn


    【解决方案1】:

    在 my_file.py 中插入以下内容

    from subprocess import run
    run("gunicorn -w 1 -b 0.0.0.0:5000 'path.to.wsgi:return_app()'".split(' '))
    

    【讨论】:

    • 但我需要将应用程序直接作为 python 对象而不是字符串。
    • 我编辑了问题
    • 还是一样有限制。我的想法是,如果我在 python 中运行它,我应该能够直接将应用程序提供给它。因为 gunicorn 需要该应用程序。 gunicorn 是 python libarray。我应该可以在 python 中使用它
    • run("gunicorn -w 1 -b 0.0.0.0:5000 module_projet.wsgi".split(' '), cwd=path_to_wsgi)
    • @Amin Ba 是不是 django 应用程序?