小编esl*_*kas的帖子

如何让 ctypes find_library 找到 libpq?

我正在 Python (3.9.9) 中构建一个简单的数据库接口,并使用 psycopg (3.0.7) 连接到我的 Postgres (14.1) 数据库。直到最近,这个应用程序的开发都是在 Linux 上进行的,但现在我在 M1 Mac mini 上使用 macOS Monterey。这似乎给 psycopg 广泛使用的 ctypes 带来了一些麻烦。我收到的错误如下:

ImportError: no pq wrapper available.
Attempts made:
- couldn't import psycopg 'c' implementation: No module named 'psycopg_c'
- couldn't import psycopg 'binary' implementation: No module named 'psycopg_binary'
- couldn't import psycopg 'python' implementation: libpq library not found
Run Code Online (Sandbox Code Playgroud)

基于psycopg源码,这是 ctypes 无法 util.find_library libpq.dylib 的错误。Postgres 安装为 Postgres.app,这意味着 libpq.dylib 的路径是

/Applications/Postgres.app/Contents/Versions/14/bin/lib

我尝试将其添加到 PATH 中,但没有成功。然后我创建了一个指向 /usr/local/lib 中路径的符号链接,但(不出所料)它也不起作用。然后我做了一些挖掘,发现这个问题描述了同样的问题。我不是 macOS …

python macos ctypes apple-m1 psycopg3

9
推荐指数
1
解决办法
5377
查看次数

标签 统计

apple-m1 ×1

ctypes ×1

macos ×1

psycopg3 ×1

python ×1