python-ldap

pythonLDAPを使う場合、python-ldapをインストールします。ここhttp://python-ldap.sourceforge.net/からダウンロード可能。これを使うにはOpenLDAPが必要です。OpenLDAPをインストールした後にこんな風にpython-ldapをインストール。最新は2.3.1です。

$ tar -zxvf python-ldap-2.3.1.tar.gz
$ cd python-ldap-2.3.1
$ /usr/local/bin/python setup.py build
# /usr/local/bin/python setup.py install

これで使えるようになったかというとそんなに簡単ではなく、こんなエラーが出たりします。

$ /usr/local/bin/python
Python 2.4.4 (#1, May  2 2007, 09:13:58)
[GCC 4.1.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import ldap
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "/usr/local/lib/python2.4/site-packages/ldap/__init__.py", line 23, in ?
    from _ldap import *
ImportError: /usr/local/lib/python2.4/site-packages/_ldap.so: undefined symbol: ldap_cancel

なんだこりゃ? _ldap.soがldapのライブラリが全然見えてないみたいです。python-ldapのソースでsetup.cfgを編集する必要があるようです。setup.cfg中の以下の2行を変更。こうなっているのを、

library_dirs = /usr/local/openldap-2.3/lib
include_dirs = /usr/local/openldap-2.3/include /usr/include/sasl

適当に変更。今回の環境ではldapは/usr/localにインストールされているので以下のように変更しました。

library_dirs = /usr/local/lib
include_dirs = /usr/local/include /usr/include/sasl

これで再度setup.py buildを実行してインストール。これで解決しました。