Python 3.8.8连接LDAP服务器报错解决及可用代码示例咨询
Python 3.8.8 连接LDAP报错解决方案
报错根源
两个报错均为ldap3依赖的pyasn1版本不兼容导致,与Python 3.8.8本身无关。
方案1:修复ldap3依赖兼容问题
- 第一步:卸载现有冲突依赖
pip uninstall -y ldap3 pyasn1 pyasn1-modules
- 第二步:安装兼容版本组合(已在Python 3.8.8环境下验证可用)
pip install ldap3==2.9.1 pyasn1==0.4.8 pyasn1-modules==0.2.8
- 功能测试代码
from ldap3 import Server, Connection server = Server('ipa.demo1.freeipa.org') conn = Connection(server) # 匿名绑定返回True即为运行成功 print(conn.bind())
方案2:使用python-ldap替代库
- 安装指定版本(Windows环境若安装失败可先下载对应Python3.8版本的预编译whl包安装)
pip install python-ldap==3.4.0
- 连接测试示例
import ldap # 关闭自动referral跳转,避免部分场景报错 ldap.set_option(ldap.OPT_REFERRALS, 0) # 初始化连接 ldap_conn = ldap.initialize("ldap://ipa.demo1.freeipa.org") try: # 匿名绑定,若要账号密码绑定替换为 ldap_conn.simple_bind_s("你的DN", "你的密码") ldap_conn.simple_bind_s("", "") print("LDAP连接绑定成功") # 搜索示例:搜索组织下所有人员 # search_base = "dc=demo1,dc=freeipa,dc=org" # search_filter = "(objectClass=person)" # result = ldap_conn.search_s(search_base, ldap.SCOPE_SUBTREE, search_filter) # print(result) except ldap.LDAPError as e: print(f"连接失败,错误信息:{str(e)}") finally: ldap_conn.unbind_s()
内容的提问来源于stack exchange,提问作者Cesarmsk
相关产品推荐
相关产品推荐

