#python #flask
Вопрос:
Терминальный Дамп —
* 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 'microblog', an ImportError was raised:
Traceback (most recent call last):
File "/home/iglu/repos/personal/Flask Mega Tutorial/microblog/venv/lib/python3.9/site-packages/flask/cli.py", line 256, in locate_app
__import__(module_name)
File "/home/iglu/repos/personal/Flask Mega Tutorial/microblog/microblog.py", line 1, in <module>
from app import app
ImportError: cannot import name 'app' from 'app' (unknown location)
Структура файла-
├── app
│ ├── __init__.py
│ ├── __pycache__
│ │ └── microblog.cpython-39.pyc
│ └── routes.py
├── microblog.py
├── __pycache__
│ └── microblog.cpython-39.pyc
├── README.md
└── venv
init.py
from flask import Flask
app = Flask(__name__)
from app import routes
routes.py
from app import app
@app.route('/')
@app.route('/index')
def index():
return "Hello, World!"
microblog.py
from app import app
Переменная python действительно установлена в одно изображение venv
Python 3.9.5 Flask 2.0.1 Werkzeug 2.0.1
Любая помощь была бы великолепна! Я изо всех сил старался точно следовать руководству.
Ответ №1:
Основываясь на вашей файловой структуре, python никоим образом не узнает о ее microblog.py
существовании. Это потому, что при вводе from app import app
python будет искать пакет app
Так вот, ваш microblog.py
товар не входит в комплект app
поставки. Итак, попробуйте переместить его в папку приложения (точнее, в пакет, потому что любая папка, имеющая инициализацию, называется пакетом), и он будет работать нормально.
Комментарии:
1. Э-э-э, возможно, я уже все исправил. Это была просто опечатка в init.py имя файла, в нем есть пробел. Моя файловая структура работала :P.
2. о, прекрасно. Сначала я думал, что это из-за того, как вы обращались microblog.py в вашем приложении. В любом случае, рад, что у вас все получилось!
Ответ №2:
Исправлено, это была опечатка, это была просто опечатка в init.py имя файла.
Не могу закрыть, так что считайте, что он закрыт