Flask __init__.py structure on Heroku

Viewed 47
from .library.routes import library
2022-05-25T11:06:23.522123+00:00 app[web.1]: ImportError: attempted relative import with no known parent package

This is the log shown by heroku, and I encountered this problem again and again and again.

How could I solve this and deploy my site on heroku?

init.py

from flask import Flask
from .library.routes import library
from .chat.routes import chat
from .extensions import db,  bcrypt, login, socketio
from .api.library_api import library_api
from .api.chat_api import chat_api
from .models.chat import user
from .user.routes import user_route
from .api.login_api import login_api
from .api.socket_api import socket_api
def create_app():
    app = Flask(__name__)
    app.secret_key = "Why would I show it to stackoverflow?"
    app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///library.sqlite3"
    app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
    app.config["SQLALCHEMY_BINDS"] = {
        'chat': "sqlite:///chat.sqlite3",
        "library": "sqlite:///library.sqlite3"
    }
    db.init_app(app)
    bcrypt.init_app(app)
    login.init_app(app)
    socketio.init_app(app)
    login.blueprint_login_views = {
        'chat': '/login',
        'library': '/login'
    }

    with app.app_context():
        db.create_all()
    app.register_blueprint(library)
    app.register_blueprint(chat)
    app.register_blueprint(library_api)
    app.register_blueprint(chat_api)
    app.register_blueprint(user_route)
    app.register_blueprint(login_api)
    app.register_blueprint(socket_api)
    return app

Procfile

web: gunicorn __init__:app --log-file=- 
web: gunicorn --worker-class eventlet -w 1 __init__:app

This init.py is really hindering my development (especially when it comes to debugging due to it running 1000% slower than using a one big app.py) but I want to keep the blueprint approach for ease of organization

0 Answers
Related