当我运行以下命令时:
sudo pip install python-ldap
我收到此错误:
在Modules/LDAPObject.c:9中包含的文件中:
Modules/errors.h:8:致命错误:lber.h:没有这样的文件或目录
任何想法如何解决这一问题?
该网站称python-ldap基于OpenLDAP,因此您需要拥有开发文件(标题)才能编译Python模块.如果您使用的是Ubuntu,则会调用该程序包libldap2-dev
.
Debian/Ubuntu:
sudo apt-get install libsasl2-dev python-dev libldap2-dev libssl-dev
RedHat/CentOS:
sudo yum install python-devel openldap-devel
要使用pip成功安装python-ldap,需要以下开发库(从ubuntu环境获取的包名):
sudo apt-get install -y python-dev libldap2-dev libsasl2-dev libssl-dev
在CentOS/RHEL 6上,您需要安装:
sudo yum install python-devel sudo yum install openldap-devel
和yum也将cyrus-sasl-devel
作为依赖项安装.然后你可以运行:
pip-2.7 install python-ldap
在Ubuntu中它看起来像这样:
$ sudo apt-get install python-dev libldap2-dev libsasl2-dev libssl-dev $ sudo pip install python-ldap
Windows:我完全同意接受的答案,但仔细阅读评论需要一段时间才能得到我需要的东西.我使用Bitnami在Windows上使用Reviewboard遇到了这个特定问题.为了给出Windows的答案,我使用了评论中提到的这个链接:
http://www.lfd.uci.edu/~gohlke/pythonlibs/#python-ldap
将该轮(whl文件)放入我的reviewboard安装目录
然后,执行以下命令
easy_install pip pip install python_ldap-2.4.20-cp27-none_win32.whl
(因为我有python 2.7和32位安装)
easy_install python-ldap
在基于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-file search lber.h
,您只需安装该软件包即可libldap2-dev
.
sudo apt-get install libldap2-dev
对于那些在Alpine Linux上遇到Iber.h相同问题的人来说,在你试图适应Alpine的码头图像中.
您正在寻找的包是:openldap-dev
所以跑
apk add openldap-dev
可从3.3版到Edge版
适用于armhf和x86_64架构.