如何让 Flask 包教程与 Poetry 一起使用?

Vil*_*sut 3 python flask python-poetry

我正在使用 Poetry 来管理我的 Python 项目(依赖项、包等),并且我正在尝试从 Flask 文档实现四行 hello world:https: //flask.palletsprojects.com/en/1.1.x/模式/包/#simple-packages

我的文件夹结构如下所示:

myproject/
  .venv/
  myproject/
    __init__.py
    views.py
  poetry.lock
  pyproject.toml
  README.rst
Run Code Online (Sandbox Code Playgroud)

这两个文件,init.py

import myproject.views
__version__ = '0.1.0'

from flask import Flask
app = Flask(__name__)
Run Code Online (Sandbox Code Playgroud)

和views.py:

from myproject import app

@app.route('/')
def index():
    return 'hello world'
Run Code Online (Sandbox Code Playgroud)

然而,当我运行 export FLASK_APP=myproject 和 FLASK_ENV=development 并执行flask run并将我的浏览器指向端口时,它说

flask.cli.NoAppException
flask.cli.NoAppException: While importing "myproject", an ImportError was raised:

Traceback (most recent call last):
  File "/myproject/.venv/lib/python3.9/site-packages/flask/cli.py", line 240, in locate_app
    __import__(module_name)
  File "/myproject/myproject/__init__.py", line 1, in <module>
    import myproject.views
  File "/myproject/myproject/views.py", line 1, in <module>
    from myproject import app
ImportError: cannot import name 'app' from partially initialized module 'myproject' (most likely due to a circular import) (/myproject/myproject/__init__.py)
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?我想使用推荐的模式。

小智 8

在您的终端中,输入poetry run flask run.