【发布时间】:2021-07-01 11:16:01
【问题描述】:
我正在使用 Poetry 来管理我的 Python 项目(依赖项、包等),并且我正在尝试从 Flask 文档中实现四行 hello world:https://flask.palletsprojects.com/en/1.1.x/patterns/packages/#simple-packages
我的文件夹结构如下:
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_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)
我该如何解决这个问题?我想使用推荐的模式。
【问题讨论】:
-
先尝试运行
poetry shell。至于循环导入,您链接的页面中有注释。 -
我有,我在虚拟环境中做所有这些
标签: python flask python-poetry