Я использую Poetry для управления своим проектом Python (зависимости, пакеты и т. д.) и пытаюсь реализовать четырехстрочный приветственный мир из документации Flask: 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'
Тем не менее, когда я запускаю экспорт 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
. что касается циклического импорта, на странице, на которую вы ссылаетесь, есть примечание. - person Capi Etheriel   schedule 09.05.2021