试图为我的Django项目安装python-ldap——到目前为止,我尝试了easy_install、pip以及构建自己,但仍然得到了相同的错误:
dlopen(/Library/Python/2.6/site-packages/_ldap.so, 2): Symbol not found: _ldap_create_assertion_control_value
Referenced from: /Library/Python/2.6/site-packages/_ldap.so
Expected in: flat namespace
in /Library/Python/2.6/site-packages/_ldap.so
怎么回事?
此处记录了问题和解决方案。
摘要:10.7.{0,1}系统工具和头文件都来自OpenLDAP 2.4.x,而库则来自OpenLDAP 2.2.0。解决方案是构建OpenLDAP库来匹配系统头,并将python-ldap与之链接。
所有的功劳都归于Rob McBroom。
pip-install-python-ldap==2.3.13帮我搞定了(Mac OS X 10.6)
我在10.7(Lion)下使用easy_install
和pip
时遇到了相同的错误。手动安装2.3.13也是答案。
我不得不修改setup.cfg才能在OS X上运行
wget http://python-ldap.cvs.sourceforge.net/viewvc/python-ldap/?view=tar --output-document=python-ldap.tar.gz
tar xvf python-ldap.tar.gz
cd python-ldap
修改setup.cfg中的以下行:
library_dirs = /usr/local/lib
include_dirs = /usr/local/include /usr/include/sasl
libs = ldap lber sasl2 ssl crypto
然后继续"正常"安装:
python setup.py build
sudo python setup.py install