繁体   English   中英

AttributeError:模块“sqlalchemy.dialects”没有属性“postgresql”

[英]AttributeError: module 'sqlalchemy.dialects' has no attribute 'postgresql'

我正在创建一个非常基本的 python 程序,将它与 psql 中的数据库连接起来。

我的代码如下:


从 sqlalchemy 导入 create_engine

从 sqlalchemy.orm 导入 scoped_session, sessionmaker

engine=create_engine("postgresql+psycopg2://sidrules:password@localhost:5432/first")

db=scoped_session(sessionmaker(bind=engine))

定义主():

 flights=db.execute("select origin, destination, duration from flights").fetchall()

      for flight in flights:

           print(f"from {flight.origin} to {flight.destination} in {flight.duration} min")

如果名称== “主要”:

main()

在运行上面的代码时,我收到以下错误(抱歉格式奇怪):


*回溯(最近一次调用最后):文件“select.py”,第 6 行,在 engine=create_engine("postgres+psycopg2://sidrules:secret@localhost:5432/first") 文件“C:\Users\Home \AppData\Local\Programs\Python\Python38-32\lib\site-packages\sqlalchemy\engine__init__.py”,第 479 行,在 create_engine 返回 strategy.create(*args, **kwargs) 文件“C:\Users\ Home\AppData\Local\Programs\Python\Python38-32\lib\site-packages\sqlalchemy\engine\strategies.py”,第 61 行,在创建入口点 = u._get_entrypoint() 文件“C:\Users\Home\ AppData\Local\Programs\Python\Python38-32\lib\site-packages\sqlalchemy\engine\url.py”,第 172 行,在 _get_entrypoint cls = registry.load(name) 文件“C:\Users\Home\AppData \Local\Programs\Python\Python38-32\lib\site-packages\sqlalchemy\util\langhelpers.py",第 253 行,在 load loader = self.auto_fn(name) File "C:\Users\Home\AppData\ Local\Programs\Python\Python38-32\lib\site-packages\sqlalchemy\dialects__init__.py",第 45 行,在 _auto_fn 模块 = import ("sqlalchemy.dialects.%s" % (dialect,)) .dialects 文件“C:\Users\Home\AppData\Local\Programs\Python\Python38-32\lib\site-packages\sqlalchemy\dialects\postgresql__init__.py”,第 8 行,来自。 导入基本文件“C:\Users\Home\AppData\Local\Programs\Python\Python38-32\lib\site-packages\sqlalchemy\dialects\postgresql\base.py”,第 954 行,从 uuid 导入 UUID 作为 _python_UUID # noqa 文件“C:\Users\Home\AppData\Local\Programs\Python\Python38-32\lib\uuid.py”,第 57 行,在 _AIX = platform.system() == 'AIX' 文件“C: \Users\Home\AppData\Local\Programs\Python\Python38-32\lib\platform.py”,第 891 行,在系统中返回 uname().system 文件“C:\Users\Home\AppData\Local\Programs\ Python\Python38-32\lib\platform.py”,第 779 行,在 unname 节点 = _node() 文件“C:\Users\Home\AppData\Local\Programs\Python\Python38-32\lib\platform.py”中,第 582 行,在 _node 导入套接字文件“C:\Users\Home\AppData\Local\Programs\Python\Python38-32\lib\socket.py”,第 52 行,在导入 os、sys、io、选择器文件中C:\Users\Home\AppData\Local\Programs\Python\Python38-32\lib\selectors.py”,第 12 行,在导入 select 文件“D:\HTML\SQL\select.py”,第 6 行,在引擎=cre ate_engine("postgres+psycopg2://sidrules:sidhhant@localhost:5432/first") 文件 "C:\Users\Home\AppData\Local\Programs\Python\Python38-32\lib\site-packages\sqlalchemy\engine__init__ .py”,第 479 行,在 create_engine 返回 strategy.create(*args, **kwargs) 文件“C:\Users\Home\AppData\Local\Programs\Python\Python38-32\lib\site-packages\sqlalchemy\ engine\strategies.py”,第 61 行,在创建入口点 = u._get_entrypoint() 文件“C:\Users\Home\AppData\Local\Programs\Python\Python38-32\lib\site-packages\sqlalchemy\engine\ url.py”,第 172 行,在 _get_entrypoint cls = registry.load(name) 文件“C:\Users\Home\AppData\Local\Programs\Python\Python38-32\lib\site-packages\sqlalchemy\util\langhelpers .py”,第 253 行,加载 loader = self.auto_fn(name) 文件“C:\Users\Home\AppData\Local\Programs\Python\Python38-32\lib\site-packages\sqlalchemy\dialects__init__.py” ,第 49 行,在 _auto_fn 中

模块 = getattr(模块,方言)

AttributeError:模块“sqlalchemy.dialects”没有属性“postgresql”*


我认为最后一行必须担心:


AttributeError:模块“sqlalchemy.dialects”没有属性“postgresql”


谢谢您的帮助。

抱歉,对于奇怪的格式,这是我的第一个问题。

谢谢所有看到并思考过我的问题的人。

我遇到的唯一问题是我的文件名是“select.py”。 我不知道如何重命名文件对我有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM