在Mac OS(Yosemite)上使用psycopg2的问题

Ben*_*ido 45 python eclipse postgresql macos psycopg2

目前我正在使用python在eclipse中安装psycopg2.

我发现了很多问题:

  1. 第一个问题sudo pip3.4 install psycopg2不起作用,它显示以下消息

错误:找不到pg_config可执行文件.

固定:export PATH=/Library/PostgreSQL/9.4/bin/:"$PATH”

  1. 当我在我的项目中导入psycopg2时,我会:

ImportError:dlopen(/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/psycopg2/_psycopg.so Library libssl.1.0.0.dylib Library libcrypto.1.0.0.dylib

固定: sudo ln -s /Library/PostgreSQL/9.4/lib/libssl.1.0.0.dylib /usr/lib sudo ln -s /Library/PostgreSQL/9.4/lib/libcrypto.1.0.0.dylib /usr/lib

  1. 现在我得到:

ImportError:dlopen(/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/psycopg2/_psycopg.so,2):找不到符号:_lo_lseek64引用自:/ Library/Frameworks/Python .framework/Versions/3.4/lib/python3.4/site-packages/psycopg2/_psycopg.so预期在/ library/Frame /Python.framework/Version/Python/lib中的/usr/lib/libpq.5.dylib /python3.4/site-packages/psycopg2/_psycopg.so

你能帮助我吗?

小智 75

您需要替换/usr/lib/libpq.5.dylib库,因为它的版本太旧了.
这是我对这个问题的解决方案:

$ sudo mv /usr/lib/libpq.5.dylib /usr/lib/libpq.5.dylib.old  
$ sudo ln -s /Library/PostgreSQL/9.4/lib/libpq.5.dylib /usr/lib
Run Code Online (Sandbox Code Playgroud)

  • 升级到优胜美地后,这对我有用.如果你正在使用postgres应用程序,那么第二个命令应该是:sudo ln -s /Applications/Postgres.app/Contents/MacOS/lib/libpq.5.dylib/usr/lib (4认同)
  • 我看到 ln: /usr/lib/libpq.5.dylib: Operation not allowed (2认同)

Sam*_*mer 28

如果您使用的是PostgresApp,则需要运行以下两个命令:

sudo mv /usr/lib/libpq.5.dylib /usr/lib/libpq.5.dylib.old
sudo ln -s /Applications/Postgres.app/Contents/Versions/9.4/lib/libpq.5.dylib /usr/lib
Run Code Online (Sandbox Code Playgroud)


jgs*_*rts 11

通过使用 psycopg2-binary 而不是 psycopg2,我能够在我的 Mac(运行 Catalina,10.15.3)上解决这个问题。

pip3 uninstall psycopg2 pip3 install psycopg2-binary