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

时间:2020-04-19 12:33:04

标签: python python-3.x postgresql sqlalchemy

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

我的代码如下:


从sqlalchemy导入create_engine

从sqlalchemy.orm导入scoped_session,会话创建器

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

db = scoped_session(sessionmaker(bind = engine))

def main():

 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() _get_entrypoint中的第172行的文件“ C:\ Users \ Home \ AppData \ Local \ Programs \ Python \ Python38-32 \ lib \ site-packages \ sqlalchemy \ engine \ url.py” cls = Registry.load(名称) 加载中的文件“ C:\ Users \ Home \ AppData \ Local \ Programs \ Python \ Python38-32 \ lib \ site-packages \ sqlalchemy \ util \ langhelpers.py”,第253行 loader = self.auto_fn(名称) _auto_fn中的第45行的文件“ C:\ Users \ Home \ AppData \ Local \ Programs \ Python \ Python38-32 \ lib \ site-packages \ sqlalchemy \ dialects__init __。py” 模块= 导入(“ sqlalchemy.dialects。%s”%(方言,))。方言 文件“ 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,一致 节点= _node() _node中的文件“ C:\ Users \ Home \ AppData \ Local \ Programs \ Python \ Python38-32 \ lib \ platform.py”,行582 进口插座 文件“ 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行 导入选择 文件“ D:\ HTML \ SQL \ select.py”,第6行,在 engine = create_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” 入口点= u._get_entrypoint() _get_entrypoint中的第172行的文件“ C:\ Users \ Home \ AppData \ Local \ Programs \ Python \ Python38-32 \ lib \ site-packages \ sqlalchemy \ engine \ url.py” cls = Registry.load(名称) 加载中的文件“ C:\ Users \ Home \ AppData \ Local \ Programs \ Python \ Python38-32 \ lib \ site-packages \ sqlalchemy \ util \ langhelpers.py”,第253行 loader = self.auto_fn(名称) _auto_fn

中的文件“ C:\ Users \ Home \ AppData \ Local \ Programs \ Python \ Python38-32 \ lib \ site-packages \ sqlalchemy \ dialects__init __。py”,第49行

模块= getattr(模块,方言)

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


我认为最后一行需要担心:


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


谢谢您的帮助。

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

1 个答案:

答案 0 :(得分:0)

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

我唯一的问题是文件名是“ select.py”。 我不知道如何,但是重命名文件对我来说很成功。