【发布时间】:2011-06-13 16:44:42
【问题描述】:
当我运行以下命令时:
sudo pip install python-ldap
我收到此错误:
在 Modules/LDAPObject.c:9 中包含的文件中:
Modules/errors.h:8: 致命错误: lber.h: 没有这样的文件或目录
任何想法如何解决这个问题?
【问题讨论】:
当我运行以下命令时:
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
【讨论】:
-dev 包(有时也称为-devel)。只需执行apt-cache search sasl | grep dev,您可能会找到合适的包 - 我猜它是libsasl2-dev。
要使用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
【讨论】:
在基于 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
【讨论】:
Windows:我完全同意接受的答案,但是挖掘 cmets 需要一段时间才能得到我需要的内容。我使用 Bitnami 在 Windows 上的 Reviewboard 上遇到了这个特定问题。然后为了给windows一个答案,我使用了cmets中提到的这个链接:
然后,执行以下命令
easy_install pip
pip install python_ldap-2.4.20-cp27-none_win32.whl
(因为我当时安装了 python 2.7 和 32 位)
easy_install python-ldap
对于那些在 Alpine Linux 上缺少 Iber.h 的相同问题,例如,在您尝试适应 Alpine 的 docker 映像中。
你要找的包是:openldap-dev
所以跑
apk add openldap-dev
从 3.3 版到 Edge 均可用
适用于 armhf 和 x86_64 架构。
【讨论】:
在 Fedora 22 上,您需要这样做:
sudo dnf install python-devel
sudo dnf install openldap-devel
【讨论】:
在 openSUSE 上,您需要安装包 openldap2-devel、cyrus-sasl-devel、python-devel 和 libopenssl-devel。
zypper install openldap2-devel cyrus-sasl-devel python-devel libopenssl-devel
【讨论】:
对于高山码头
apk add openldap-dev
如果python版本是3以上试试
pip install python3-ldap
【讨论】:
sudo apt-get install build-essential python3-dev python2.7-dev libldap2-dev libsasl2-dev slapd ldap-utils python-tox lcov valgrind
【讨论】:
python3 不支持 python-ldap。而不是安装ldap3。
【讨论】:
我在 Windows 上安装时遇到问题,因此解决方案之一是手动安装 ldap 包。
几个步骤:
*whl。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)
【讨论】:
在 OSX 上,您需要 xcode CLI 工具。只需打开一个终端并运行:
xcode-select --install
【讨论】:
对于大多数系统,现在在“安装”部分的python-ldap's documentation 中提到了构建要求。
如果您的系统缺少任何东西(或您的系统完全丢失),请告知维护者! (截至 2018 年,我是维护者,所以在这里发表评论就足够了。或者您可以发送拉取请求或邮件。)
【讨论】:
纠正由于安装 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
【讨论】:
在 FreeBSD 11 中:
pkg install openldap-client # for lber.h
pkg install cyrus-sasl # if you need sasl.h
pip install python-ldap
【讨论】:
作为在 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 时学到了这个技巧。
【讨论】:
对于我来说 ArchLinux/Manjaro 帮助了以下命令:
yay libldap24
【讨论】:
如果你使用的是windows机器,你可以在Link找到'python-ldap'轮子然后你就可以安装它了
【讨论】:
对于那些正在使用 alphine linux 的人, apk 添加 openldap-dev
【讨论】:
尝试:
ARCHFLAGS="-arch x86_64" pip3 install python-ldap
【讨论】:
还添加 libzbar-dev 解决了我在构建 DOCKER
python-ldap 的问题
完整的命令变成:
apt-get install -y python-dev libldap2-dev libsasl2-dev libssl-dev libzbar-dev
【讨论】:
截至 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
【讨论】: