Python 如何让Flask软件包教程处理诗歌?

Python 如何让Flask软件包教程处理诗歌?,python,flask,python-poetry,Python,Flask,Python Poetry,我正在使用Poethy来管理我的Python项目(依赖项、包等),并试图实现Flask文档中的四行hello world: 我的文件夹结构如下所示: myproject/ .venv/ myproject/ __init__.py views.py poetry.lock pyproject.toml README.rst 两个文件,init.py: import myproject.views __version__ = '0.1.0' from fla

我正在使用Poethy来管理我的Python项目(依赖项、包等),并试图实现Flask文档中的四行hello world:

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

myproject/
  .venv/
  myproject/
    __init__.py
    views.py
  poetry.lock
  pyproject.toml
  README.rst
两个文件,init.py:

import myproject.views
__version__ = '0.1.0'

from flask import Flask
app = Flask(__name__)
和views.py:

from myproject import app

@app.route('/')
def index():
    return 'hello world'
然而,当我运行export FLASK\u APP=myproject和FLASK\u 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)
flask.cli.NoAppException
flask.cli.NoAppException:导入“myproject”时,引发ImportError:
回溯(最近一次呼叫最后一次):
文件“/myproject/.venv/lib/python3.9/site packages/flask/cli.py”,第240行,在locate\u应用程序中
__导入(模块名称)
文件“/myproject/myproject/_init__uuu.py”,第1行,在
导入myproject.views
文件“/myproject/myproject/views.py”,第1行,在
从myproject导入应用程序
ImportError:无法从部分初始化的模块“myproject”导入名称“app”(很可能是由于循环导入)(/myproject/myproject/\uu init\uuuuu.py)

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

我相信您的问题来自于导入
\uuu init\uuuuuuuuy.py
顶部的视图。尝试将import语句移动到文件末尾,就像本教程所做的那样。

尝试先运行
poetry shell
。至于循环导入,在你链接的页面中有一个注释。我已经,我正在虚拟环境中做所有这些。vscode python扩展不允许。它会自动将其移动到顶部。。。为什么?