执行以下命令时:

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时,我学会了这个技巧。

其他回答

在CentOS/RHEL 6上,您需要安装:

sudo yum install python-devel
sudo yum install openldap-devel

yum还将安装cyrus- sass -devel作为依赖项。然后你可以运行:

pip-2.7 install python-ldap
sudo apt-get install build-essential python3-dev python2.7-dev libldap2-dev libsasl2-dev slapd ldap-utils python-tox lcov valgrind

Debian参考: https://www.python-ldap.org/en/latest/installing.html#debian 其他信息:https://www.python-ldap.org/en/latest/installing.html

try:

ARCHFLAGS="-arch x86_64" pip3 install python-ldap

添加libzbar-dev还解决了我在构建DOCKER时安装python-ldap的问题

完整命令变成:

apt-get install -y python-dev libldap2-dev libsasl2-dev libssl-dev libzbar-dev

在FreeBSD 11中:

pkg install openldap-client # for lber.h
pkg install cyrus-sasl # if you need sasl.h
pip install python-ldap