无法将 PostgreSQL 与 Python3.6 连接,但可以使用相同的代码与 Python2.7 连接。问题意外

Cannot connect PostgreSQL with Python3.6 but works same code with Python2.7. Issue unexpected

我正在尝试在 Windows 上使用 Python 连接到 PostgreSQL 数据库,使用 python 3.6 失败,否则在 python 2.7 中成功,其余代码必须是 3.6 中的 运行,因此,这就是不更改为旧版本的原因。

尝试了不同的方法:我尝试删除 PORT 实例,将连接输入作为变量传递,但我没有包含 "conn.autocommit = True"...不走运。

我也尝试过使用 pip3 安装 psycopg2-binary: 但是,当我 运行 时,问题仍然存在。

def conn_to_pgdb():

    conn = psycopg2.connect("dbname='db' user='jon' password='jon'  host='host1234' port='5444'")
    conn.autocommit = True
    cur = conn.cursor()

    create_table = "DROP TABLE IF EXISTS " + con_path + ";" \
                    "CREATE TABLE " + con_path + " (" \
                    "user varchar(30)," \
                    "size varchar(50); "

    cur.execute(create_table)

conn_to_pgdb()

这是异常输出:

psycopg2.OperationalError:无法将主机名 "host1234" 转换为地址:未知服务器错误

解决了,很好奇。基于 3.6 python 解释器的虚拟环境是问题的原因。我只更改为仅用作主要 Python 3.6 的解释器,而没有创建任何虚拟环境(正如我过去所做的那样)......现在工作完美!

感谢大家的宝贵时间,