执行以下命令时:

sudo pip install python-ldap

我得到这个错误:

在Modules/LDAPObject.c:9包含的文件中: Modules/errors.h:8:致命错误:lber.h:没有这样的文件或目录

有什么解决办法吗?


当前回答

“不要盲目地删除/安装软件”

在基于Ubuntu或Debian的发行版中,您可以使用apt-file来查找包含丢失头文件的确切包的名称。

# do this once
sudo apt-get install apt-file
sudo apt-file update

$ apt-file search lber.h
libldap2-dev: /usr/include/lber.h

正如您可以从apt文件搜索lber.h的输出中看到的,您只需要安装包libldap2-dev。

sudo apt-get install libldap2-dev

其他回答

Windows:我完全同意这个公认的答案,但我花了一段时间才从评论中找到我想要的东西。我使用Bitnami在Windows上的Reviewboard遇到了这个特定的问题。为了给出windows的答案,我使用了评论中提到的这个链接:

http://www.lfd.uci.edu/~gohlke/pythonlibs/#python-ldap 将该车轮(whl文件)放入我的审查板安装目录

然后执行如下命令

easy_install pip
pip install python_ldap-2.4.20-cp27-none_win32.whl

(因为我安装了python 2.7和32位)

easy_install python-ldap

要用pip成功安装python-ldap,需要以下开发库(包名取自ubuntu环境):

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

对于那些在Alpine Linux上丢失Iber.h的人,例如,在您试图适应Alpine的docker映像中。

您正在寻找的包是:openldap-dev

所以运行

Apk添加openldap-dev

从3.3版本到Edge版本均可用

适用于armhf和x86_64架构。

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

完整命令变成:

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

用于阿尔卑斯码头

apk add openldap-dev

如果python版本是3及以上,请尝试

pip install python3-ldap