python-ldap OS X 10.6 and Python 2.6

故事扮演 提交于 2019-12-30 08:33:28

问题


Trying to install python-ldap for my Django project -- so far tried easy_install, pip, as well as building myself, but still getting the same errors:

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

What's going on?


回答1:


The problem and solution are documented here.

Summary: The 10.7.{0,1} system tools and headers are all from OpenLDAP 2.4.x while the libraries are from OpenLDAP 2.2.0. The solution is to build the OpenLDAP libs to match the system headers and link python-ldap with those.

All credit goes to Rob McBroom.




回答2:


pip install python-ldap==2.3.13 did the trick for me (Mac OS X 10.6)




回答3:


I encountered the same error under 10.7 (Lion) using easy_install and pip. Manually installing 2.3.13 was the answer there as well.




回答4:


I had to modify setup.cfg to get this to work on OS X. Here's what I did:

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

Modify the following lines in setup.cfg:

library_dirs = /usr/local/lib
include_dirs = /usr/local/include /usr/include/sasl
libs = ldap lber sasl2 ssl crypto

Then continue with "normal" installation:

python setup.py build
sudo python setup.py install


来源:https://stackoverflow.com/questions/6475118/python-ldap-os-x-10-6-and-python-2-6

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!