2010-03-24 5 views
6

j'ai une erreur python AttributeError: objet 'module' n'a pas d'attribut 'initialiser' Je courais Python 2.6.2 sous Solaris 10 UNIX et a récemment installé le pythonldap 2.3.9. Le script est très basique, n'a que ces 2 lignes. Quelqu'un peut-il me dire pourquoi? Erreur de retraçage ci-dessous.Python ldap AttributeError

#!/usr/local/bin/python 

import ldap, sys 

con = ldap.initialize('ldap://localhost') 

retraçage (appel le plus récent en dernier): Fichier "./myldap.py", ligne 5, dans con = ldap.initialize ('ldap: // localhost') AttributeError: 'module' objet n'a pas d'attribut « initialiser »

Cordialement, Jenny

+0

La ligne shebang préférée pour Python est '!/Usr/local/env python', qui exécute tout" python "sur la ligne de commande. –

Répondre

22

Avez-vous le nom d'un fichier dans le répertoire courant ldap.py qui est shadowing celui que vous voulez?

+0

Impressionnant. Des réponses rapides et utiles en moins de 2 minutes! Oui, je l'ai fait, j'ai renommé ce fichier maintenant et j'ai eu une autre erreur. retraçage (appel le plus récent en dernier): Fichier "./myldap.py", ligne 3, dans import ldap Fichier « /usr/local/lib/python2.6/site-packages/ldap/__init__. py ", ligne 22, en depuis _ldap import * ImportError: ld.so.1: python: fatal: libsasl2.so.2: ouverture échouée: aucun fichier ou répertoire – jenny

+0

Bingo! Inspectez l'installation de votre module LDAP. On dirait que ça peut être bouché. Et bienvenue à SO !! – jathanism

+0

Il semble que vous ayez des problèmes avec le module C que ldap doit appeler. Quel système d'exploitation utilisez-vous? Comment avez-vous installé python-ldap? –

2

Un moyen facile de savoir si le ldap que vous importez est le bon est d'imprimer ldap.__file__, qui affiche le chemin d'accès complet au fichier de module (généralement un '.pyc'). Si ce n'est pas celui installé dans l'emplacement que vous attendez, c'est votre problème, comme Mike Graham suggéré.

+0

J'ai fait cette erreur et cette réponse m'a aidé à découvrir que même si j'avais renommé mon 'ldap.py' à quelque chose d'autre, il y avait toujours un' ldap.pyc' dans le dossier. – Xabs

2

Vous pouvez obtenir cette erreur si vous récupérez le "ldap.py" de sos/plugins/au lieu du paquet ldap lui-même. Assurez-vous que le paquet "python-ldap" est bien installé ...

2

Beaucoup de gens donnent des solutions beaucoup plus compliquées ... Tout simplement, l'installation de pip du module ldap ne fonctionne pas. Vous devez installer le paquet python-ldap depuis apt ou yum.

+0

cela semble être le cas. – user455318

Questions connexes