安装postgresql驱动及python使用pyodbc指定postgresql驱动调用postgresql
作者:mmseoamin日期:2024-01-25

注:Python解释器版本(32位/64位)和postgresql驱动版本(32位/64位)需一致。

一、安装postgresql驱动

https://www.postgresql.org/ftp/odbc/versions/msi/

(1)32位:

安装postgresql驱动及python使用pyodbc指定postgresql驱动调用postgresql,第1张

(2)64位:

安装postgresql驱动及python使用pyodbc指定postgresql驱动调用postgresql,第2张

双击安装。全程默认。

二、查看是否安装成功

(1)32位

打开 C:\Windows\SysWOW64\odbcad32.exe

安装postgresql驱动及python使用pyodbc指定postgresql驱动调用postgresql,第3张

(2)64位

打开 C:\Windows\System32\odbcad32.exe

安装postgresql驱动及python使用pyodbc指定postgresql驱动调用postgresql,第4张

如图即安装成功

三、python使用pyodbc调用

(1)32位:(端口根据实际情况修改)

def test_conn_sql_db():
    source_db_ip = 'ip'
    source_db_user = '用户名'
    source_db_pwd = '密码'
    databasename = '数据库名'
    dbconn = pyodbc.connect("DRIVER={PostgreSQL Unicode};"
                            "DATABASE="+databasename+";"
                            "SERVER="+source_db_ip+";"
                            "UID="+source_db_user+";"
                            "PWD="+source_db_pwd+";"
                            "PORT=5432;"
                            "QUIETMODE=YES")
    return dbconn
if __name__ == '__main__':
    test_conn_sql_db()

(2)64位:(端口根据实际情况修改)

def test_conn_sql_db_64():
    source_db_ip = 'ip'
    source_db_user = '用户名'
    source_db_pwd = '密码'
    databasename = '数据库名'
    dbconn = pyodbc.connect("DRIVER={PostgreSQL Unicode(x64)};"
                            "DATABASE="+databasename+";"
                            "SERVER="+source_db_ip+";"
                            "UID="+source_db_user+";"
                            "PWD="+source_db_pwd+";"
                            "PORT=5432;"
                            "QUIETMODE=YES")
    return dbconn
if __name__ == '__main__':
    test_conn_sql_db_64()

四、常见问题

Python64位+postgresql驱动32位报错:

pyodbc.InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 (0) (SQLDriverConnect)')

安装postgresql驱动及python使用pyodbc指定postgresql驱动调用postgresql,第5张