Python Flask_SQLAlchemy create_all()不';行不通

Python Flask_SQLAlchemy create_all()不';行不通,python,flask,sqlalchemy,flask-sqlalchemy,Python,Flask,Sqlalchemy,Flask Sqlalchemy,我开始学习如何在代码中使用SQLAlchemy,但由于某种原因,当我运行代码时,它引发了以下异常: Traceback (most recent call last): File "C:/Users/smadar.KLAG/PycharmProjects/keylogger/site/practice.py", line 118, in <module> db.create_all() File "C:\Users\c\projects\

我开始学习如何在代码中使用SQLAlchemy,但由于某种原因,当我运行代码时,它引发了以下异常:

Traceback (most recent call last):
  File "C:/Users/smadar.KLAG/PycharmProjects/keylogger/site/practice.py", line 118, in <module>
    db.create_all()
  File "C:\Users\c\projects\test\venv\lib\site-packages\flask_sqlalchemy\__init__.py", line 1039, in create_all
    self._execute_for_all_tables(app, bind, 'create_all')
  File "C:\Users\c\projects\test\venv\lib\site-packages\flask_sqlalchemy\__init__.py", line 1031, in _execute_for_all_tables
    op(bind=self.get_engine(app, bind), **extra)
  File "C:\Users\c\projects\test\venv\lib\site-packages\flask_sqlalchemy\__init__.py", line 962, in get_engine
    return connector.get_engine()
  File "C:\Users\c\projects\test\venv\lib\site-packages\flask_sqlalchemy\__init__.py", line 555, in get_engine
    options = self.get_options(sa_url, echo)
  File "C:\Users\c\projects\test\venv\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\c\projects\test\venv\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

我试着运行我的一个朋友的代码,他有SQLAlchemy(代码对他有效),以防这是一个编码问题,但我也遇到了与他的代码相同的错误。

有什么事情我做得不对吗?

我也遇到了。看起来SQLAlchemy刚刚发布了1.4版,它打破了SQLAlchemy


我可以通过安装以前的(1.3)版本来解决系统上的问题。

编辑:SQLAlchemy的最新版本现在可以工作了(撰写本文时的版本1.4)

安装SQLAlchemy 1.3.23对我来说很有用

pip install SQLAlchemy==1.3.23

您是否将您的模块版本与您的朋友进行过比较?PythonWe也一样我们都使用了相同的教程,一对一地介绍如何建立数据库,但出于某种原因,它对他有效,而对我无效(尽管我没有尝试给他我的代码)。我在3.7上运行,奇怪的是,我将SQLALCHEMY_数据库_URI设置为“sqlite://:memory:”起作用,所以无论出于什么原因,它都无法生成我假设的实际文件,请尝试升级到一个更新的python版本?我也会做同样的事情,然后很快报告。这很奇怪,如果我把它改成内存,它也会对我起作用,尽管出于某种原因,我的朋友仍然可以使用它sqlite:///users.sqlite3. 有可能是因为他已经建立了数据库,但我不确定。如果是这样的话,我想这是他们的问题,除非缺少我们不知道的东西,尽管这不太可能,因为问题的根源是将SQLALCHEMY_数据库_URI设置为sqlite:///users.sqlite3. 有什么特别的东西吗?
pip install SQLAlchemy==1.3.23