我无法安装python-ldap

时间:2011-01-22 14:44:27

标签: python module ldap

当我运行以下命令时:

sudo pip install python-ldap

我收到此错误:

  

在Modules / LDAPObject.c中包含的文件中:9:

     

Modules / errors.h:8:致命错误:lber.h:没有这样的文件或目录

任何想法如何解决这个问题?

21 个答案:

答案 0 :(得分:334)

website表示python-ldap基于OpenLDAP,因此您需要拥有开发文件(标题)才能编译Python模块。如果您使用的是Ubuntu,则会将该程序包称为libldap2-dev

<强>于De​​bian / Ubuntu

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

<强>的RedHat / CentOS的

sudo yum install python-devel openldap-devel

答案 1 :(得分:142)

要使用pip成功安装python-ldap,需要以下开发库(从ubuntu环境中获取软件包名称):

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

答案 2 :(得分:70)

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

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

和yum也会安装cyrus-sasl-devel作为依赖项。然后你可以运行:

pip-2.7 install python-ldap

答案 3 :(得分:31)

在Ubuntu中它看起来像这样:

 $ sudo apt-get install python-dev libldap2-dev libsasl2-dev libssl-dev
 $ sudo pip install python-ldap

答案 4 :(得分:13)

Windows:我完全同意接受的答案,但是通过这些评论花了一些时间来了解我需要的东西。我使用Bitnami在Windows上使用Reviewboard遇到了这个特定问题。为了给出Windows的答案,我使用了评论中提到的这个链接:

然后,执行以下命令

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

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

easy_install python-ldap

答案 5 :(得分:9)

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

在基于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

答案 6 :(得分:5)

对于那些在Alpine Linux上遇到Iber.h相同问题的人,在例如你试图适应Alpine的码头图片中。

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

所以运行

apk add openldap-dev

从版本3.3到Edge

可用

可用于armhf和x86_64架构。

答案 7 :(得分:4)

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

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

答案 8 :(得分:3)

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

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

答案 9 :(得分:2)

在OSX上,您需要xcode CLI工具。只需打开终端并运行:

xcode-select --install

答案 10 :(得分:2)

python3不支持python-ldap。而是安装ldap3。

答案 11 :(得分:1)

作为在Debian / Ubuntu上安装具有二进制依赖关系[1]的Python包的一般解决方案:

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

您必须检查name of your Python package on Ubuntu与PyPI。在这种情况下,他们是一样的。

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

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

答案 12 :(得分:1)

在FreeBSD 11中:

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

答案 13 :(得分:1)

对于大多数系统,现在在python-ldap's documentation的“安装”部分中提到了构建要求。

如果您的系统缺少任何内容(或者您的系统完全丢失),请告知维护人员! (截至2018年,我是维护者,所以这里的评论应该足够了。或者你可以发送拉动请求或邮件。)

答案 14 :(得分:0)

如果你正在使用Windows机器,你可以找到&#39; python-ldap&#39;转到这个Link,然后你可以安装它

答案 15 :(得分:0)

对于使用Alphine Linux的用户, apk添加openldap-dev

答案 16 :(得分:0)

对于高山码头工人

apk add openldap-dev

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

pip install python3-ldap

答案 17 :(得分:0)

要纠正由于安装python-ldap的依赖性而导致的错误:Windows 7/10

下载whl文件

http://www.lfd.uci.edu/~gohlke/pythonlibs/#python-ldap

python 3.6西装搭配

python_ldap-3.2.0-cp36-cp36m-win_amd64.whl

将文件部署到:

  

c:\ python36 \ Scripts \

安装

python -m pip install python_ldap-3.2.0-cp36-cp36m-win_amd64.whl

答案 18 :(得分:0)

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

答案 19 :(得分:0)

我在Windows上安装时遇到问题,因此解决方案之一是手动安装ldap软件包。

几个步骤:

  • 转到页面pyldap或/和python-ldap并下载最新版本*whl
  • 打开一个控制台,然后CD到您已将文件下载到some-package.whl之类的位置,并使用:
pip install some-package.whl

pyldap的当前版本为2.4.45。在一个具体示例中,安装应为:

pip install .\pyldap-2.4.45-cp37-cp37m-win_amd64.whl

# or
pip install .\python_ldap‑3.3.1‑cp39‑cp39‑win_amd64.whl

输出:

Installing collected packages: pyldap
Successfully installed pyldap-2.4.45

答案 20 :(得分:0)

试试:

 var progress by remember {mutableStateOf(0.0f)}
var enabled by remember { mutableStateOf(true) }
LaunchedEffect(key1 = progress, key2 = enabled) {
    if(progress<1 && enabled) {
        delay(100L)
        progress += 0.01F
    }
}
LinearProgressIndicator(
    color = White,
    backgroundColor = LightGray,
    progress = progress,
    modifier = Modifier.width(100.dp)
)