代码之家  ›  专栏  ›  技术社区  ›  vwos

烧瓶Gunicorn找不到应用程序

  •  1
  • vwos  · 技术社区  · 7 年前

    我正在使用Flask创建一个应用程序。当直接用Python运行它时,一切都很好,但我想在Heroku上托管它,所以我需要弄清楚如何使用Gunicorn。我现在的问题是 app.py 不在我的根文件夹中,不能简单地键入 gunicorn app 或者类似的东西。我的文件夹结构如下:

    .
    ├── LICENSE
    ├── myproject
    │   ├── app.py
    │   ├── static
    │   └── templates
    ├── Procfile
    ├── README.md
    ├── requirements.txt
    

    哪里 应用程序。py公司 看起来像这样:

    app = Flask(__name__)
    
    @app.route("/")
    def index():
        return render_template("index.html")
    
    if __name__ == '__main__':
        app.run(debug=True)
    

    我尝试使用Gunicorn以以下方式运行它。。。

    gunicorn myproject app.py

    gunicorn myproject app:app

    gunicorn myproject/app.py

    我还尝试创建 __init__.py 在里面 myproject/ ,但我不知道该在那里放些什么才能让这一切顺利进行。

    2 回复  |  直到 7 年前
        1
  •  2
  •   user9232447 user9232447    7 年前

    尝试添加到 __init__.py 要导出的wsgi实例。

    from .app import app

    这样wsgi app 导入时可用 myproject 您应该能够使用 gunicorn myproject:app

        2
  •  0
  •   kkron    3 年前

    这是一个非常晚的响应,但我在部署flask应用程序时遇到了这个问题。这似乎是间歇性的。

    我的问题是,即使我在我的venv gunicorn中,从命令行来看似乎忽略了venv,但是如果我在venv中使用完整路径运行gunicorn,它就会工作

    which gunicorn
    

    /主页/ubuntu/FieldWorker/venv/bin/gunicorn

    /home/ubuntu/FieldWorker/venv/bin/gunicorn
    # correctly outputs
    

    [2022-01-10 23:15:52+0000][1280][信息]开始 gunicorn 20.1.0[2022-01-10 23:15:52+0000][1280][信息]收听 地址: http://0.0.0.0:8080 (1280) [2022-01-10 23:15:52 +0000] [1280] [信息]使用工作线程:sync[2022-01-10 23:15:52+0000][1282][信息] 带pid的引导工人:1282[2022-01-10 23:15:52+0000][1283] [信息]正在启动pid为1283的辅助进程调试:ngoupdate:ngoupdate。py公司

    鉴于

    gunicorn
    

    gunicorn-w 2-b 0.0.0.0:8080“现场工作者:创建应用程序()”[2022-01-10 23:15:26+0000][1275][信息]开始gunicorn 20.0.4[2022-01-10 23:15:26+0000][1275][信息]收听时间: http://0.0.0.0:8080 (1275) [2022-01-10 23:15:26+0000][1275][信息]使用辅助程序:同步 [2022-01-10 23:15:26+0000][1277][信息]带pid的引导工作程序: 1277[2022-01-10 23:15:26+0000][1277][错误] worker中的异常 过程ModuleNotFoundError:没有名为“flask”的模块

    (venv)ubuntu@ip-172-31-1-144:~/prod$哪条蟒蛇3 /主页/ubuntu/FieldWorker/venv/bin/python3