【问题标题】:Python problem connecting to Heroku PostgreSQL - SSL issue连接到 Heroku PostgreSQL 的 Python 问题 - SSL 问题
【发布时间】:2019-02-27 23:22:36
【问题描述】:

我正在尝试通过 Python 创建与 Heroku PostgreSQL 数据库的连接。我正在使用带有 Python 3.6.8 和 PostgreSQL 9.6 的 Windows10。

我从“http://andyfiedler.com/2016/10/connecting-to-heroku-postgres-in-python”获取了这段代码

import psycopg2

import subprocess

proc = subprocess.Popen('heroku config:get DATABASE_URL -a heroku_app', stdout=subprocess.PIPE, shell=True)
db_url = proc.stdout.read().decode('utf-8').strip() + '?sslmode=require'
heroku_conn = psycopg2.connect(db_url)

当我运行该代码时,我得到了错误:

OperationalError: could not create SSL context: No such process

四处搜索表明我需要使用“--with-openssl”选项安装 PostgreSQL。或者,使用编译的 SSL。

如何在 Windows10 中执行此操作?或者,还有其他方法可以让它工作吗?谢谢!

【问题讨论】:

    标签: python postgresql heroku


    【解决方案1】:

    PostgreSQL 的客户端库名为“libpq”,具有optional support for SSL。您需要将连接到 PostgreSQL 的程序,以便在构建程序时启用该支持。

    你可以得到the official PostgreSQL packages for Windows。

    【讨论】:

    • 感谢您的帮助。这些链接最终使我找到了解决方案,尽管不是我所期望的。对我有用的是卸载 Anaconda 版本的 psycopg2 并通过“pip install psycopg2”重新安装。与 2.7.6.1 的 Anaconda 版本相比,2.7.7 的 pip 版本略新。
    • 我可以确认@ochaer1 之前的评论。我的错误是psycopg2.OperationalError,提到PostgreSQL配置表在数据库{db}上没有用户{user}@位置{IP}的条目,使用SSL = false。原因是服务器上强制设置了 SSL 连接。 PIP 版本的 psycopg2 支持 SSL,Conda 版本不支持。
    猜你喜欢
    • 2012-03-12
    • 1970-01-01
    • 2018-11-26
    • 1970-01-01
    • 2016-08-13
    • 2017-11-25
    • 1970-01-01
    • 2021-11-18
    • 2011-04-10
    相关资源
    最近更新 更多