我一直在尝试在工作中运行基于 Python 2.6 代码的 Web 服务器。服务器需要 python LDAP 库才能运行。因为我正在使用 Mac OS X Lion,所以我需要手动安装 python-ldap 2.4.7 才能让 Python 完全识别 LDAP。Python-ldap 似乎可以正确安装,但是当我尝试运行 Web 服务器时出现以下错误(为了清楚起见,我添加了一些换行符):
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/python_ldap-2.4.7-py2.6-macosx-10.7-fat.egg/_ldap.so, 2 ):未找到符号:_ber_pvt_opt_on
引用自:/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/python_ldap-2.4.7-py2.6-macosx-10.7-fat.egg/_ldap.so
预期在:/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/python_ldap-2.4.7-py2.6-macosx-10.7-fat.egg/_ldap.so 中的平面命名空间
我使用的是 OpenLDAP 2.4.21,并且在运行我的 python-ldap 安装之前设置了以下系统变量:
export ARCHFLAGS="-arch i386"
export CFLAGS="-isysroot /Developer/SDKs/MacOSX10.7.sdk -arch i386"
export MACOSX_DEPLOYMENT_TARGET="10.7"
我还应该提到,我不得不强制我安装的所有东西使用 32 位架构而不是 64 位,以便解决 Oracle 64 位支持的一些问题。有没有人遇到过类似的情况,或者他们知道 LDAP 正在寻找的“_ber_pvt_opt_on”符号的意义吗?我能够得出的谷歌结果数量既小又无用。您可以就这种情况提供任何启示,我们将不胜感激。