当我运行以下命令时:
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:没有此类文件或目录
任何想法如何解决这一问题?
Answers:
该蟒蛇,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
sudo pip install python-ldap
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
在基于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
在OSX上,您需要xcode CLI工具。只需打开一个终端并运行:
xcode-select --install
对于大多数系统,现在在python-ldap的文档的“安装”部分中提到了构建要求。
如果您的系统缺少任何内容(或系统完全丢失),请告知维护人员!(截至2018年,我是维护者,因此在此处进行评论应该足够。或者您可以发送拉取请求或邮件。)
python3不支持python-ldap。而是安装ldap3。
要更正由于依赖而导致的错误,请安装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
作为在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
您必须在Ubuntu和PyPI 上检查Python软件包的名称。在这种情况下,它们是相同的。
如果Python软件包不在Ubuntu仓库中,显然不起作用。
[1]我尝试pip install matplotlib
在Ubuntu上学习了这个技巧。
对于高山码头工人
apk add openldap-dev
如果python版本是3以上,请尝试
pip install python3-ldap
对于使用alphine linux的用户,apk添加openldap-dev
sudo apt-get install build-essential python3-dev python2.7-dev libldap2-dev libsasl2-dev slapd ldap-utils python-tox lcov valgrind
usr/bin/
目录后发现我pip, pip-2.7, pip-3.6, and pip-python
这样做了sudo pip-3.6 install ldap3
,它对我有用。