我无法安装 python-ldap

Posted

技术标签:

【中文标题】我无法安装 python-ldap【英文标题】:I can't install python-ldap 【发布时间】:2011-06-13 16:44:42 【问题描述】:

当我运行以下命令时:

sudo pip install python-ldap

我收到此错误:

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

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

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

谢谢。它更进一步,现在由于 sasl.h 没有这样的文件或目录而失败 @VacuumTube:缺少标头几乎总是表明缺少-dev 包(有时也称为-devel)。只需执行apt-cache search sasl | grep dev,您可能会找到合适的包 - 我猜它是libsasl2-dev 适用于 windows 用户的任何东西 :( 同样的错误,目前没有解决方案 您不必在 Windows 上从源代码编译。只需使用来自pypi.python.org/pypi/python-ldap 的安装程序之一。 另外,Windows 用户可以提取提到的 .msi 安装程序 @Semmel 安装到 virtualenv 中:How to install python-ldap on a python 2.7 virtualenv on windows without compiling(参见更新 2)【参考方案2】:

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

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

【讨论】:

【参考方案3】:

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

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

并且 yum 还将安装 cyrus-sasl-devel 作为依赖项。然后就可以运行了:

pip-2.7 install python-ldap

【讨论】:

【参考方案4】:

在 Ubuntu 中是这样的:

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

【讨论】:

【参考方案5】:

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

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

【讨论】:

这确实应该在顶部。这非常有帮助。 有与此等效的 CentoOS 吗?【参考方案6】:

Windows:我完全同意接受的答案,但是挖掘 cmets 需要一段时间才能得到我需要的内容。我使用 Bitnami 在 Windows 上的 Reviewboard 上遇到了这个特定问题。然后为了给windows一个答案,我使用了cmets中提到的这个链接:

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

【讨论】:

***.com/questions/15070063/…【参考方案7】:

对于那些在 Alpine Linux 上缺少 Iber.h 的相同问题,例如,在您尝试适应 Alpine 的 docker 映像中。

你要找的包是:openldap-dev

所以跑

apk add openldap-dev

从 3.3 版到 Edge 均可用

适用于 armhf 和 x86_64 架构。

【讨论】:

适用于基于 alpine 的图像。谢谢。【参考方案8】:

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

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

【讨论】:

仍然适用于 F25【参考方案9】:

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

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

【讨论】:

【参考方案10】:

对于高山码头

apk add openldap-dev

如果python版本是3以上试试

pip install python3-ldap

【讨论】:

【参考方案11】:
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

【讨论】:

【参考方案12】:

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

【讨论】:

【参考方案13】:

我在 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

编辑

您可以使用以下命令为 Python-3.X 安装正确的版本:

# if pip3 is the default pip alias for python-3
pip3 install python3-ldap

# otherwise 
pip install python3-ldap

这里是 PiPy 包的链接以获取更多信息:python3-ldap 0.9.8.4

ldap3 是一个严格遵循 RFC 4510 的 LDAP V3 纯 Python 客户端库。相同的代码库在 Python 2、Python 3、PyPy 和 PyPy3 中运行:https://github.com/cannatag/ldap3

pip install ldap3
from ldap3 import Server, Connection, SAFE_SYNC

server = Server('my_server')
conn = Connection(server, 'my_user', 'my_password', client_strategy=SAFE_SYNC, auto_bind=True)

status, result, response, _ = conn.search('o=test', '(objectclass=*)') 
# usually you don't need the original request (4th element of the returned tuple)

【讨论】:

【参考方案14】:

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

xcode-select --install

【讨论】:

【参考方案15】:

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

如果您的系统缺少任何东西(或您的系统完全丢失),请告知维护者! (截至 2018 年,我是维护者,所以在这里发表评论就足够了。或者您可以发送拉取请求或邮件。)

【讨论】:

谢谢,可能值得注意的是,如果您正在运行 python3,则需要 python3-devel,而不是 python-devel。【参考方案16】:

纠正由于安装 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\脚本\

安装它

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

【讨论】:

【参考方案17】:

在 FreeBSD 11 中:

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

【讨论】:

【参考方案18】:

作为在 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 时学到了这个技巧。

【讨论】:

【参考方案19】:

对于我来说 ArchLinux/Manjaro 帮助了以下命令:

yay libldap24

【讨论】:

它在 Manjaro 上工作,谢谢【参考方案20】:

如果你使用的是windows机器,你可以在Link找到'python-ldap'***然后你就可以安装它了

【讨论】:

【参考方案21】:

对于那些正在使用 alphine linux 的人, apk 添加 openldap-dev

【讨论】:

【参考方案22】:

尝试:

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

【讨论】:

你能解释一下这是做什么的吗?【参考方案23】:

还添加 libzbar-dev 解决了我在构建 DOCKER

时安装 python-ldap 的问题

完整的命令变成:

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

【讨论】:

【参考方案24】:

截至 2021 年 12 月,ldap 库存在一个奇怪的问题(至少在 arch/manjaro 中)。

在安装python-ldap 时(在'python-ldap 的构建轮')我收到消息'错误:python-ldap 的构建轮失败':

  /usr/bin/ld: cannot find -lldap_r                                                                                                                     
  collect2: error: ld returned 1 exit status                                                                                                            
  error: command '/usr/bin/gcc' failed with exit code 1  

这里提供了一种解决方法:https://github.com/python-ldap/python-ldap/issues/432#issuecomment-974799221

我引用:

作为一种解决方法,使用内容创建文件 /usr/lib64/libldap_r.so 输入(libldap.so)。该方法适用于所有使用 GNU 的系统 ld 兼容的链接器。

# cat > /usr/lib64/libldap_r.so << EOF
INPUT ( libldap.so )
EOF

【讨论】:

以上是关于我无法安装 python-ldap的主要内容,如果未能解决你的问题,请参考以下文章

python-ldap 3.4 在高山图像上安装失败

Python-ldap 安装不上

Windows 7 上的 Python-LDAP 身份验证

ubuntu 安装mysql-python和 python-ldap,navicate 问题

Ubuntu18.4.3安装python-ldap找不到lber.h的解决方法

Plone ldap 添加安装问题