无法加载插件: sqlalchemy.dialects:sqlite3

13

我正在学习使用Python创建API 这里。我已经准备好并下载了数据库,但是当我运行我的应用程序时,我遇到了以下错误:

Traceback (most recent call last):
  File "app.py", line 7, in <module>
    e = create_engine("sqlite3:///salaries.db")
  File "C:\Python27\lib\site-packages\sqlalchemy\engine\__init__.py", line 387, in create_engine
    return strategy.create(*args, **kwargs)
  File "C:\Python27\lib\site-packages\sqlalchemy\engine\strategies.py", line 56, in create
    entrypoint = u._get_entrypoint()
  File "C:\Python27\lib\site-packages\sqlalchemy\engine\url.py", line 139, in _get_entrypoint
    cls = registry.load(name)
  File "C:\Python27\lib\site-packages\sqlalchemy\util\langhelpers.py", line 212, in load
    (self.group, name))
sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:sqlite3

我到底做错了什么,以至于它无法加载正确的插件?
from flask import Flask, request
from flask_restful import Resource, Api
from sqlalchemy import create_engine
from json import dumps


e = create_engine("sqlite3:///salaries.db")

app = Flask(__name__)
api = Api(app)


class DepartmentsMeta(Resource):
    def get(self):
        conn = e.connect()
        query = conn.execute("select distinct DEPARTMENT from salaries")
        return {"departments": [i[0] for i in query.cursor.fetchall()]}


class DepartmentSalary(Resource):
    def get(self, department_name):
        conn = e.connect()
        query = conn.execute("select * from salaries where Department='%s'" % department_name)
        result = {"data": [dict(zip(tuple(query.keys()), i))] for i in query.cursor}
        return result


api.add_resource(DepartmentSalary, "/dept/<string:department_name>")
api.add_resource(DepartmentsMeta, "/department")


if __name__ == "__main__":
    app.run()
2个回答

31
请尝试更换此行:
e = create_engine("sqlite3:///salaries.db")

随着

e = create_engine("sqlite:///salaries.db")

-1

我遇到了同样的问题,我通过以下方式解决:

pip3 uninstall flask_sqlalchemypip3 install flask-sqlalchemy==2.5.1,因为在flask-sqlalchemy==3.0版本中有很大的变化,内存中的SQLite DB不是默认设置。

希望能对你有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接