Flask: ModuleNotFoundError при использовании `flask run`, но может запускать приложение с использованием` python app.py` - PullRequest
0 голосов
/ 01 февраля 2020

Я могу запустить свое приложение flask, используя python app.py, однако, если я попытаюсь flask run или flask shell, я получу следующую ошибку:

(venv) C:\Users\Arrchana\PycharmProjects\ie-backend>flask run
 * Serving Flask app "app.py"
 * 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]

Error: While importing "ie-backend.app", an ImportError was raised:

Traceback (most recent call last):
  File "c:\users\arrchana\pycharmprojects\ie-backend\venv\lib\site-packages\flask\cli.py", line 240, in locate_app
    __import__(module_name)
  File "C:\Users\Arrchana\PycharmProjects\ie-backend\app.py", line 3, in <module>
    from routes import api_dev
ModuleNotFoundError: No module named 'routes'

Это структура моего приложения (некоторые файлы и отсутствуют модули):

ie-backend/
    appInits/
        __init__.py
        dp.py
    models/
        __init__.py
        user.py
    app.py
    config.py
    routes.py

У меня нет проблем с импортом config в app.py, однако я получаю ModuleNotFoundError при попытке импортировать маршруты, appInits и модели. Я получаю ту же ошибку при запуске flask shell.

Мой файл app.py выглядит следующим образом:

from flask import Flask
from config import Config
from flask_script import Manager
from flask_migrate import MigrateCommand

from routes import api_dev
from appInits.db import db
from appInits import jwt

from models.user import UserModel

app = Flask(__name__)
app.config.from_object(Config)

app.register_blueprint(api_dev, url_prefix='/dev')

db.init_app(app)

migrate = Migrate(app, db)
manager = Manager(app)
manager.add_command('db', MigrateCommand)

if __name__ == "__main__":
    app.run(debug=Config.DEBUG)

У меня нет кругового импорта в маршрутах и ​​т. Д. c. Мой FLASK_APP = app.py.

Ответы [ 2 ]

0 голосов
/ 10 апреля 2020

Добавить __init__.py под ie-backend

Добавить . перед импортом

from .routes import api_dev
from .appInits.db import db
from .appInits import jwt
0 голосов
/ 01 февраля 2020

Попробуйте добавить в свой импорт ie-backend., например from ie-backend.routes import api_dev et c.

...