使用sqlalchemy的informix DB的Python数据库连接

Posted

技术标签:

【中文标题】使用sqlalchemy的informix DB的Python数据库连接【英文标题】:Python Database connection for informix DB using sqlalchemy 【发布时间】:2021-04-29 08:19:22 【问题描述】:

我正在尝试使用 python3 sqlalchemy 连接到远程 Informix DB,但连接失败

sqlalchemy.create_engine("informix://usr1:pwd1@XXX:23300/DB_NAME;SERVER=dsinfmx").connect()

连接时出现以下错误。

sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:informix

有人可以提供一些帮助吗?从 Dbeaver 可以访问数据库服务器。

【问题讨论】:

【参考方案1】:

我假设您使用的是 Informix Python 驱动程序。如果没有,请安装 Informix Python 驱动程序,即 IfxPy。安装 Informix Python 驱动程序的详细信息在此链接https://github.com/OpenInformix/IfxPy/blob/master/README.md

试试下面的代码。

from sqlalchemy import create_engine
from sqlalchemy.dialects import registry
from sqlalchemy.orm import sessionmaker

registry.register("informix",        "IfxAlchemy.IfxPy", "IfxDialect_IfxPy")
registry.register("informix.IfxPy",  "IfxAlchemy.IfxPy", "IfxDialect_IfxPy")
registry.register("informix.pyodbc", "IfxAlchemy.pyodbc", "IfxDialect_pyodbc")

from sqlalchemy import Table, Column, Integer

ConStr = 'informix://<username>:<password>@<machine name>:<port number>/<database name>;SERVER=<server name>'
engine = create_engine(ConStr)
connection = engine.connect()

connection.close()
print( "Done2" )

【讨论】:

以上是关于使用sqlalchemy的informix DB的Python数据库连接的主要内容,如果未能解决你的问题,请参考以下文章

SqlAlchemy Informix 状态

将 DB2 驱动程序与 Informix 一起使用

使用 python 的 ibm_db 连接到 informix

Django、Informix、ibm_db 和 DB2 数据服务器驱动程序

Informix 中的数据库别名

在 Informix DB 中将字符串转换为日期