从 Lion Mountain 升级到 Mavericks (10.9.4) 后,Trac 安装停止工作。
首先,我尝试通过升级 Trac 安装来解决该问题,但收到以下错误消息:
$ trac-admin /Users/myuser/Documents/2014/trac upgrade
Error: Cannot load Python bindings for PostgreSQL
然后,通过直接在 Python 控制台上进行测试,我可以说这是一致的,因为我收到了相同的错误:
$ python
Python 2.7.5 (default, Mar 9 2014, 22:15:05)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import psycopg2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Python/2.7/site-packages/psycopg2/__init__.py", line 50, in <module>
from psycopg2._psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID
ImportError: dlopen(/Library/Python/2.7/site-packages/psycopg2/_psycopg.so, 2)
Library not loaded: libssl.1.0.0.dylib
Referenced from: /Library/Python/2.7/site-packages/psycopg2/_psycopg.so
Reason: image not found
>>>
我已经尝试过多种方法:安装和卸载 psycopg2
(使用 pip 和 easy_install),甚至从源代码构建 psycopg2
。
然后,四处寻找解决方案,我在这些相关问题 Q1 中找到了一些建议, Q2和 Q3 ,但尚未成功。
otool
给我以下输出:
$ otool -L /Library/Python/2.7/site-packages/psycopg2/_psycopg.so
/Library/Python/2.7/site-packages/psycopg2/_psycopg.so:
libpq.5.dylib (compatibility version 5.0.0, current version 5.5.0)
libssl.1.0.0.dylib (compatibility version 1.0.0, current version 1.0.0)
libcrypto.1.0.0.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
然后,我尝试设置 DYLD_FALLBACK_LIBRARY_PATH
环境变量,如下所示:
$ echo $DYLD_FALLBACK_LIBRARY_PATH
/Users/myuser/lib:/usr/local/lib:/lib:/usr/lib
包括,重新启动控制台并重新启动机器,我已经没有解决方案了,知道如何解决吗?
最佳答案
最后,我能够运行 Trac 来访问存储在 PostgreSQL 9.2 中的旧票证数据库
...经过几年的尝试,以及从 Mavericks 到 Yosemite 再到 El Capitan 的几次升级,这就是解决方案:
第 1 步:更改/usr/local 文件夹的所有者
sudo chown -R $(whoami):admin /usr/local
第 2 步:更新路径
PG_HOME=/Library/PostgreSQL/9.2
PATH=$PATH:$PG_HOME/bin
第 3 步:重新安装 psycopg2
pip uninstall psycopg2
pip install psycopg2
第 4 步:更新 psycopg2 使用的相对路径
sudo install_name_tool -change libpq.5.dylib /Library/PostgreSQL/9.2/lib/libpq.5.dylib /Library/Python/2.7/site-packages/psycopg2/_psycopg.so
sudo install_name_tool -change libcrypto.1.0.0.dylib /Library/PostgreSQL/9.2/lib/libcrypto.1.0.0.dylib /Library/Python/2.7/site-packages/psycopg2/_psycopg.so
sudo install_name_tool -change libssl.1.0.0.dylib /Library/PostgreSQL/9.2/lib/libssl.1.0.0.dylib /Library/Python/2.7/site-packages/psycopg2/_psycopg.so
关于python - 无法加载 PostgreSQL 的 Python 绑定(bind) - psycopg2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26088564/