我无法安装python-ldap

当我运行以下命令:

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运行这个特定的问题。 为了给出一个答案的窗口,我用这个链接中提到的评论:

然后,执行以下命令

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

(因为我有Python 2.7和一个32位安装在那)

 easy_install python-ldap 

在Fedora 22上,你需要这样做:

 sudo dnf install python-devel sudo dnf install openldap-devel 

在openSUSE上,您需要安装软件包openldap2-develcyrus-sasl-develpython-devellibopenssl-devel

zypper install openldap2-devel cyrus-sasl-devel python-devel libopenssl-devel

在OSX上,您需要使用xcode CLI工具。 只要打开一个terminal并运行:

 xcode-select --install 

作为一个通用的解决scheme,在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上检查你的Python包的名字与PyPI。 在这种情况下,他们是一样的。

如果Python软件包不在Ubuntu软件仓库中,显然不起作用。

[1]我试图在Ubuntu上pip install matplotlib时学到了这个技巧。

在FreeBSD 11中:

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

对于那些在Alpine Linux上缺lessIber.h的问题,例如你正试图适应Alpine的Docker镜像。

你正在寻找的软件包是:openldap-dev

所以跑吧

apk add openldap-dev

从版本3.3到边缘可用

可用于armhf和x86_64架构。