无法通过psycopg2更改PostgreSQL库版本

-1 投票
1 回答
38 浏览
提问于 2025-04-12 17:58

我之前安装了Postgresapp应用,里面有Postgresql v16,并且用了一段时间。后来我发现有时候在迁移数据时会遇到问题,于是我开始深入研究这个问题。结果发现,psycopg2这个库使用的是Postgresapp提供的PostgreSQL客户端版本16,但我们在生产环境中使用的是PostgreSQL 13,所以我决定在本地环境中降级。

我卸载了Postgresapp,然后用brew安装了Postgresql v13(也试过用Postgresapp提供的PostgreSQL v13),但它还是在找PostgreSQL v16的库,导致我出现了这个错误。

  Referenced from: <6C63B347-6EF3-3651-8D8C-F7B5D56B0B8E> /Users/xxxx/Library/Caches/pypoetry/virtualenvs/project-NfM96__V-py3.11/lib/python3.11/site-packages/psycopg2/_psycopg.cpython-311-darwin.so
  Reason: tried: '/Applications/Postgres.app/Contents/Versions/16/lib/libpq.5.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Applications/Postgres.app/Contents/Versions/16/lib/libpq.5.dylib' (no such file), '/Applications/Postgres.app/Contents/Versions/16/lib/libpq.5.dylib' (no such file)

我不想用一些黑科技的解决办法,比如创建符号链接,这只是权宜之计。那么我该如何把这个引用改成正确的路径呢?我用brew重新安装了postgres@13,重新安装了psycopg2,也重新安装了poetry环境,但它还是在找错误的路径。

有没有什么建议?

附:后来我发现用psycopg2-binary可以正常工作,或者如果我把它打包成wheel格式也可以,这样做对吗?

1 个回答

0

我开始使用psycopg2-binary这个库了,现在它可以正常工作。

撰写回答