flask shell 执行db.create_all()产生错误 AttributeError: can’t set attribute

在运行命令:
python wsgi.py
报错:

Traceback (most recent call last):
  File "wsgi.py", line 5, in <module>
    app = create_app()
  File "C:\Users\kegek\Desktop\flask_tencent\flaskr\__init__.py", line 52, in create_app
    dbchemy.create_all()
  File "C:\Users\kegek\Miniconda3\envs\flask\lib\site-packages\flask_sqlalchemy\__init__.py", line 1039, in create_all
    self._execute_for_all_tables(app, bind, 'create_all')
  File "C:\Users\kegek\Miniconda3\envs\flask\lib\site-packages\flask_sqlalchemy\__init__.py", line 1031, in _execute_for_all_ta
bles
    op(bind=self.get_engine(app, bind), **extra)
  File "C:\Users\kegek\Miniconda3\envs\flask\lib\site-packages\flask_sqlalchemy\__init__.py", line 962, in get_engine
    return connector.get_engine()
  File "C:\Users\kegek\Miniconda3\envs\flask\lib\site-packages\flask_sqlalchemy\__init__.py", line 555, in get_engine
    options = self.get_options(sa_url, echo)
  File "C:\Users\kegek\Miniconda3\envs\flask\lib\site-packages\flask_sqlalchemy\__init__.py", line 570, in get_options
    self._sa.apply_driver_hacks(self._app, sa_url, options)
  File "C:\Users\kegek\Miniconda3\envs\flask\lib\site-packages\flask_sqlalchemy\__init__.py", line 914, in apply_driver_hacks
    sa_url.database = os.path.join(app.root_path, sa_url.database)
AttributeError: can't set attribute

run 在wsgi.py文件中app = create_app()时,找init.py中create_app():执行到dbchemy.create_all()或者是db.create_all()时,AttributeError: can't set attribute

参考文章的评论:https://discuss.helloflask.com/t/topic/662
知道了解决办法
pip install -U flask-sqlalchemy
我当前的 flask-sqlalchemy=2.4.4,看了文章说是库的问题,已修复这个问题,目前包含这个修复的2.5.0版本已发布,更新后运行成功。




posted @ 2022-04-23 21:53  木子欢儿  阅读(412)  评论(0编辑  收藏  举报