我正在尝试使用Postgres数据库运行Django项目。我使用通过postgressapp安装的Postgres13.4(目前支持的所有版本都是UNIVERSAL)和python 3.9(在venv中)。我用苹果M1芯片macOS Big Sur在Mac上工作。
我面临以下众所周知的问题:
django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: dlopen(/Users/mymac/PyCharmProjects/projectname/venv/lib/python3.9/site-packages/psycopg2/_psycopg.cpython-39-darwin.so, 2): Library not loaded: /opt/homebrew/opt/postgresql/lib/libpq.5.dylib
Referenced from: /Users/mymac/PyCharmProjects/projectname/venv/lib/python3.9/site-packages/psycopg2/_psycopg.cpython-39-darwin.so
Reason: image not found
通过搜索,我发现了一些类似的讨论:https://github.com/psycopg/psycopg2/issues/1216
。似乎最相关的解决方案是";RyanDurk在1月27日评论道:
$ brew install libpq --build-from-source
$ export LDFLAGS="-L/opt/homebrew/opt/libpq/lib"
$ pip install psycopg2
不幸的是,对我来说,这没有帮助。
然后,我在这里找到了一些建议:未加载库:/usr/local/lib/libpq.5.4dylib,并尝试了它们。特别是,我试图通过类似的符号链接访问libpq.5.dylib:ln -s /Library/PostgreSQL/13/lib/libpq.5.dylib /opt/homebrew/opt/postgresql/lib/libpq.5.dylib
(主题启动器标记为已接受的解决方案),但也没有成功。
我试着从postgresql.org安装postgres,然后用自制软件卸载/重新安装postgress,然后是
gem uninstall pg -> bundle install
结果相同。
我以前也成功地运行过同样的项目,在mac上使用英特尔芯片和PyCharm社区版。同样的项目也在Linux上正常运行。
如果你知道发生了什么以及如何解决这个问题,请帮助我。如有必要,我会提供更多细节。
brew决定将我的postgresql
包升级到版本14后,我也出现了同样的错误(您的版本可能会有所不同)。
错误信息有以下部分:
Library not loaded: '/usr/local/opt/postgresql/lib/libpq.5.dylib'
...
Reason: tried: '/usr/local/opt/postgresql/lib/libpq.5.dylib' (no such file)
我基本上找到了libpq
的新位置,并将其符号链接到psycopg2
正在寻找它的位置:
ln -s /usr/local/lib/postgresql@14/libpq.5.14.dylib /usr/local/opt/postgresql/lib/libpq.5.dylib
希望这能帮助其他有类似问题的人。
今天早上我遇到了同样的错误。我的解决方案与公认的有点不同:
我卸载并重新安装了psycopg2。
pip uninstall psycopg2
pip install -r requirements.txt
这里没有版本更改,但我想构建过程确定了正确的路径。