[Pkg-mailman-hackers] Bug#801682: mailman: still using old (python 2.5) library path

Paolo Miotto paolo.miotto at uniud.it
Tue Oct 13 13:05:53 UTC 2015


Package: mailman
Version: 1:2.1.18-2
Severity: normal

I'm  trying to use LDAPMemberships adapter with mailman in jessie.

From command line, list_lists and list_members are working.

When I access to the mailman web site with LDAPMemberships adapter
activated, it fails to load the ldap library (from package python-ldap)
with this error:

File "/var/lib/mailman/Mailman/LDAPMemberships.py", line 30, in <module>
    import ldap
ImportError: No module named ldap

below in the trace dump I've found this:

sys.path        =   ['/var/lib/mailman/pythonlib', '/var/lib/mailman',
'/usr/lib/mailman/scripts', '/var/lib/mailman', '/usr/lib/python2.7/',
'/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload',
'/usr/lib/python2.7/site-packages']

As you can see, the library path is set as

'/usr/lib/python2.7/site-packages',

while the package python-ldap installs the library as

'/usr/lib/python2.7/dist-packages/ldap'

It works if I do one of this:

* I make a symbolic link from /usr/lib/python2.7/site-packages
  to /usr/lib/python2.7/dist-packages 

* I add this 2 lines 
    import sys
    sys.path.append("/usr/lib/python2.7/dist-packages/")
  at the beginning of LDAPMemberships.py.

I've tryed to change sys.path in /usr/lib/mailman/bin/paths.py with no
success.

From section 2.5 of the Debian Python Policy I understand that
site-packages is the default destination for pre-2.5 pyhton, and
dist-packages for python 2.6 and above.

Setting the correct path for the scripts called through the web
interface will make the things working out of the box with other
libraries too.


-- 

Paolo Miotto



More information about the Pkg-mailman-hackers mailing list