执行以下命令时:
sudo pip install python-ldap
我得到这个错误:
在Modules/LDAPObject.c:9包含的文件中: Modules/errors.h:8:致命错误:lber.h:没有这样的文件或目录
有什么解决办法吗?
执行以下命令时:
sudo pip install python-ldap
我得到这个错误:
在Modules/LDAPObject.c:9包含的文件中: Modules/errors.h:8:致命错误:lber.h:没有这样的文件或目录
有什么解决办法吗?
当前回答
在Debian/Ubuntu上安装二进制依赖的Python包[1]的通用解决方案:
sudo apt-get build-dep python-ldap
# installs system dependencies (but not the package itself)
pew workon my_virtualenv # enter your virtualenv
pip install python-ldap
你必须在Ubuntu和PyPI上检查你的Python包的名称。在这种情况下,它们是一样的。
显然,如果Python包不在Ubuntu回购中,则无法工作。
当我尝试在Ubuntu上安装matplotlib时,我学会了这个技巧。
其他回答
对于大多数系统,现在python-ldap文档中的“安装”部分提到了构建需求。
如果您的系统缺少任何东西(或者您的系统完全缺少),请让维护者知道! (截至2018年,我是维护者,所以这里的评论应该足够了。或者你可以发送一个请求或邮件。)
在openSUSE上需要安装openldap2-devel、cyrus-sasl-devel、python-devel和libopenssl-devel。
Zypper安装openldap2-devel cyrus-sasl-devel python-devel libopenssl-devel
添加libzbar-dev还解决了我在构建DOCKER时安装python-ldap的问题
完整命令变成:
apt-get install -y python-dev libldap2-dev libsasl2-dev libssl-dev libzbar-dev
截至2021年12月,ldap库出现了一个奇怪的问题(至少在arch/manjaro中)。
在安装python-ldap(在'Building wheel for python-ldap')时,我收到消息'ERROR: Failed Building wheel for python-ldap':
/usr/bin/ld: cannot find -lldap_r
collect2: error: ld returned 1 exit status
error: command '/usr/bin/gcc' failed with exit code 1
这里提供了一个解决方案:https://github.com/python-ldap/python-ldap/issues/432#issuecomment-974799221
我引用:
作为解决方案,创建文件/usr/lib64/libldap_r.关于内容 输入(libldap。)。这种方法适用于所有使用GNU的系统 ld-compatible链接器。 # cat > /usr/lib64/libldap_r.so << EOF 输入(libldap。) EOF
对FreeBSD 13.1的一个hack答案(是的,我知道这是最佳实践的深层南方,但我只是需要一个快速修复):
pkg install openldap24-client
cd /usr/local/include/python3.9
ln -s ../<all of the below> .
lber.h
lber_types.h
ldap.h
ldap_cdefs.h
ldap_features.h
ldap_schema.h
ldap_utf8.h
openldap.h
sasl
pip install python-ldap