【问题标题】:Error message "no pq wrapper available." popped up when import psycopg?错误消息“没有可用的 pq 包装器”。导入 psycopg 时弹出?
【发布时间】:2022-07-16 22:37:44
【问题描述】:

我只运行我的第一行代码

import psycopg

然后 ImportError “没有可用的 pq 包装器”刚刚弹出。

我在任何地方都找不到真正的解决方案,所以这就是我在这里问的原因。

【问题讨论】:

  • 确保您的 pip 超过 v20.3 并且您是否在 Windows 上运行?
  • 是的,我的 pip 超过 v20.3 并且在 Windows 11 上运行,我添加了一个新的 PATH 导致 libpq.dll 因为我将它用于 python,但似乎我收到另一个错误 @987654322 @

标签: python


【解决方案1】:

有一种新方法。

我遇到了完全相同的问题,我真的懒得去寻找它,因为它正在 Windows 上使用 IntelliJ 处理 WSL 或使用 Ubuntu 处理 WSL,但不在 Windows 上的 Jupyter 实验室中工作(我会如果我发现问题,请回复)。所以,我认为这是使用import pg8000 的好机会。 pg8000 是一个用于连接 Postgres 的纯 python 实现,到目前为止看起来操作相似(我用游标和本地 Postgres 对其进行了测试)。用pip3 install pg8000 安装pg8000,然后...

基本成分

#!/usr/bin/env python3
import pg8000 as pg

def db_conn():
    conn = pg.Connection(host='localhost', 
                         database='dev_database', 
                         user='postgres', 
                         password='yourPassword!')
    return conn

# Now you have a connection, query your data with a cursor

conn = db_conn()
cur = conn.cursor()
cur.execute('SELECT * FROM tab1')
data = cur.fetchall()

# Now 'data' contains your data, or use the new way with conn.run

if __name__ == '__main__':
    print('Grabbing data from tab1...')

    for row in conn.run('SELECT * FROM tab1'):
        print(row)

    conn.close()

conn.run 方法返回一个元组,其中每行都有一个列表,但读入 pandas DataFrame 没有问题,因为它是可迭代的(不,我不推荐这样做,但这是一个懒惰的星期六?)

df = pd.DataFrame([row for row in conn.run('SELECT * FROM journal;')])

我去拿我的外套?

【讨论】:

    猜你喜欢
    • 2022-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-28
    • 1970-01-01
    • 2020-08-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多