微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Flask-SQLAlchemy:更改 raspberryPie 的 SD 卡后“属性错误:无法设置属性”

如何解决Flask-SQLAlchemy:更改 raspberryPie 的 SD 卡后“属性错误:无法设置属性”

所以最近我使用 sqlAlchemy 启动了一个烧瓶项目,效果很好。当我的 SD 卡已满时,我想换一个更大的,所以我将代码复制到 USB 记忆棒上,更换卡并将我的项目复制到新卡上。现在每次我想对我的数据库做一些事情时我都会收到这个错误

Traceback (most recent call last):
  File "/home/pi/Documents/flask/venv/bin/flask",line 10,in <module>
    sys.exit(main())
  File "/home/pi/Documents/flask/venv/lib/python3.7/site-packages/flask/cli.py",line 967,in main
    cli.main(args=sys.argv[1:],prog_name="python -m flask" if as_module else None)
  File "/home/pi/Documents/flask/venv/lib/python3.7/site-packages/flask/cli.py",line 586,in main
    return super(FlaskGroup,self).main(*args,**kwargs)
  File "/home/pi/Documents/flask/venv/lib/python3.7/site-packages/click/core.py",line 782,in main
    rv = self.invoke(ctx)
  File "/home/pi/Documents/flask/venv/lib/python3.7/site-packages/click/core.py",line 1259,in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/pi/Documents/flask/venv/lib/python3.7/site-packages/click/core.py",line 1066,in invoke
    return ctx.invoke(self.callback,**ctx.params)
  File "/home/pi/Documents/flask/venv/lib/python3.7/site-packages/click/core.py",line 610,in invoke
    return callback(*args,**kwargs)
  File "/home/pi/Documents/flask/venv/lib/python3.7/site-packages/click/decorators.py",line 21,in new_func
    return f(get_current_context(),*args,**kwargs)
  File "/home/pi/Documents/flask/venv/lib/python3.7/site-packages/flask/cli.py",line 426,in decorator
    return __ctx.invoke(f,**kwargs)
  File "/home/pi/Documents/flask/venv/lib/python3.7/site-packages/flask_migrate/cli.py",line 92,in migrate
    rev_id,x_arg)
  File "/home/pi/Documents/flask/venv/lib/python3.7/site-packages/flask_migrate/__init__.py",line 96,in wrapped
    f(*args,**kwargs)
  File "/home/pi/Documents/flask/venv/lib/python3.7/site-packages/flask_migrate/__init__.py",line 212,in migrate
    version_path=version_path,rev_id=rev_id)
  File "/home/pi/Documents/flask/venv/lib/python3.7/site-packages/alembic/command.py",in revision
    script_directory.run_env()
  File "/home/pi/Documents/flask/venv/lib/python3.7/site-packages/alembic/script/base.py",line 490,in run_env
    util.load_python_file(self.dir,"env.py")
  File "/home/pi/Documents/flask/venv/lib/python3.7/site-packages/alembic/util/pyfiles.py",line 97,in load_python_file
    module = load_module_py(module_id,path)
  File "/home/pi/Documents/flask/venv/lib/python3.7/site-packages/alembic/util/compat.py",line 182,in load_module_py
    spec.loader.exec_module(module)
  File "<frozen importlib._bootstrap_external>",line 728,in exec_module
  File "<frozen importlib._bootstrap>",line 219,in _call_with_frames_removed
  File "migrations/env.py",line 25,in <module>
    str(current_app.extensions['migrate'].db.engine.url).replace('%','%%'))
  File "/home/pi/Documents/flask/venv/lib/python3.7/site-packages/flask_sqlalchemy/__init__.py",line 943,in engine
    return self.get_engine()
  File "/home/pi/Documents/flask/venv/lib/python3.7/site-packages/flask_sqlalchemy/__init__.py",line 962,in get_engine
    return connector.get_engine()
  File "/home/pi/Documents/flask/venv/lib/python3.7/site-packages/flask_sqlalchemy/__init__.py",line 555,in get_engine
    options = self.get_options(sa_url,echo)
  File "/home/pi/Documents/flask/venv/lib/python3.7/site-packages/flask_sqlalchemy/__init__.py",line 570,in get_options
    self._sa.apply_driver_hacks(self._app,sa_url,options)
  File "/home/pi/Documents/flask/venv/lib/python3.7/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

我的项目代码中没有任何更改。

当我一无所获时,我开始了一个新项目,并按照 Flask Mega 教程 https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world 以完全相同的方式进行设置,直到第四步之后。 它仍然给出同样的错误,我无法找出它可能是什么问题。

奇怪的是:flask db init 工作正常,但之后 flask db migrate 抛出错误

感谢每一位帮助!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。