首先,这不像python中的典型相对输入错误,因此应注意。基本上,我已经使用gunicorn将烧瓶应用程序部署到了heroku,并且该应用程序显示了应用程序错误。 在开发阶段,一切正常,但在部署时崩溃。 浏览heroku日志后,我看到了
from .config.config import Config
2019-11-17T22:42:23.881100+00:00 app[web.1]: ImportError: attempted relative import with no known parent package
使用config而不是.config显然可以解决问题,但是在开发阶段我会遇到importerror。我应该注意,以这种方式导入的所有程序包都出现多个错误。 这将是一个很大的项目,我无法每次都更改包导入方法。我已经检查了所有烧瓶部署教程,但是由于某些原因每个人都在示例中使用了它
无论如何我的文件结构是
App.py
import os
import sys
sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))
from flask import Flask
from flask_bcrypt import Bcrypt
from flask_cors import CORS
from flask_heroku import Heroku
from flask_marshmallow import Marshmallow
from flask_migrate import Migrate
from flask_sqlalchemy import SQLAlchemy
from .config.config import Config
from .routes.main import main_blueprint
from flask_login import LoginManager
from flask_jwt_extended import JWTManager
app = Flask(__name__)
# set config for app
app.config.from_object(Config)
# set the 3rd party libraries
heroku = Heroku(app)
db = SQLAlchemy(app)
cors = CORS(app)
ma = Marshmallow(app)
bcrypt = Bcrypt(app)
migrate = Migrate(app, db)
login = LoginManager(app)
jwt = JWTManager(app)
#
from .models.user import Users
db.create_all()
db.session.commit()
print("tables created")
#register blueprinnt
app.register_blueprint(main_blueprint)
if __name__ == "__main__":
app.run()
Procfile
web: gunicorn app:app