导入 'myapp.app' 时出现导入错误

While importing 'myapp.app' an import error was raised

我正在构建一个 flask 应用程序,它位于我项目中名为 myapp 的子目录中。 运行 gunicorn --bind 0.0.0.0:$PORT myapp.app:app 工作正常,没有错误,无论 FLASK_APP 设置为什么。但是,当我尝试使用 Flask 的 CLI 时,它找不到我的应用程序(合理),但是当我将 FLASK_APP 设置为 myapp.app. 时,它似乎将导入路径加倍,导致导入错误:

FLASK_APP=myapp.app flask run
 * Serving Flask app 'myapp.app' (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
Usage: flask run [OPTIONS]
Try 'flask run --help' for help.

Error: While importing 'myapp.myapp.app', an ImportError was raised.

我该如何解决这个问题?这是 Flask 中的错误吗?

我的项目目录中有一个 __init__.py 导致了这个问题。


我在cli.py中挖掘了flask的源代码,在prepare_import中找到了如下代码:

    # move up until outside package structure (no __init__.py)
    while True:
        path, name = os.path.split(path)
        module_name.append(name)

        if not os.path.exists(os.path.join(path, "__init__.py")):
            break

因为我的项目目录(也称为 myapp)中有一个 __init__.py,这使得 flask 尝试从我的项目的祖先导入 myapp.app,导致 myapp.myapp.app