在Mac OS(Yosemite)上使用psycopg2时遇到的问题
在Mac OS(Yosemite)上使用psycopg2时遇到的问题
我正在使用eclipse和python安装psycopg2来进行工作。我遇到了很多问题:\n1. 第一个问题是sudo pip3.4 install psycopg2
无法工作,并显示以下错误信息:\n错误:找不到pg_config可执行文件。\n修复方法:export PATH=/Library/PostgreSQL/9.4/bin/:\"$PATH”
\n2. 当我在项目中导入psycopg2时,我遇到了以下错误:\nImportError:\n dlopen(/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/psycopg2/_psycopg.so\n Library libssl.1.0.0.dylib\n Library libcrypto.1.0.0.dylib\n修复方法:\n
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
\n3. 现在我遇到了以下错误:\nImportError:\n dlopen(/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/psycopg2/_psycopg.so,\n 2): Symbol not found: _lo_lseek64 Referenced from:\n /Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/psycopg2/_psycopg.so\n Expected in: /usr/lib/libpq.5.dylib in\n /Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/psycopg2/_psycopg.so\n你能帮帮我吗?
在Mac OS(Yosemite)上使用psycopg2时出现问题的原因是库文件libpq.5.dylib的位置不正确,解决方法是通过以下两条命令进行修复:
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
这种方法对我有用。但我还是要小心操作。我对此不太清楚的是,这样做会对我系统上依赖于之前安装在我的系统上(OSX Mavericks)的旧版本PostgreSQL的其他应用程序产生什么影响。
这对我有用。我之前安装了Postgresql,然后又安装了PostgreSQL应用程序,当我卸载之前的安装时,出现了相同的错误。这个问题解决了我的问题,不确定为什么,但感谢!
问题的原因是/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
如果你使用的是Postgres应用程序,则第二个命令应该是:
sudo ln -s /Applications/Postgres.app/Contents/MacOS/lib/libpq.5.dylib /usr/lib
如果你看到"ln: /usr/lib/libpq.5.dylib: Operation not permitted"的错误提示,那么你需要进入恢复模式,禁用系统完整性保护,然后重新链接库文件。你可以参考这个链接:stackoverflow.com/questions/32659348/…。
这个方法在我升级到Yosemite后解决了我的问题。希望对你有帮助。