我无法安装 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-devel
、cyrus-sasl-devel
、python-devel
和 libopenssl-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的主要内容,如果未能解决你的问题,请参考以下文章
ubuntu 安装mysql-python和 python-ldap,navicate 问题