我无法安装python-ldap
当我运行以下命令:
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
要使用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
Windows:我完全同意接受的答案,但是通过评论挖掘需要一段时间去了解我所需要的东西。 我使用Bitnami在Windows上使用Reviewboard运行这个特定的问题。 为了给出一个答案的窗口,我用这个链接中提到的评论:
- 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
在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
在OSX上,您需要使用xcode CLI工具。 只要打开一个terminal并运行:
xcode-select --install
作为一个通用的解决scheme,在Debian / Ubuntu上安装具有二进制依赖关系的Python包[1]:
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上检查你的Python包的名字与PyPI。 在这种情况下,他们是一样的。
如果Python软件包不在Ubuntu软件仓库中,显然不起作用。
[1]我试图在Ubuntu上pip install matplotlib
时学到了这个技巧。
在FreeBSD 11中:
pkg install openldap-client # for lber.h pkg install cyrus-sasl # if you need sasl.h pip install python-ldap
对于那些在Alpine Linux上缺lessIber.h的问题,例如你正试图适应Alpine的Docker镜像。
你正在寻找的软件包是:openldap-dev
所以跑吧
apk add openldap-dev
从版本3.3到边缘可用
可用于armhf和x86_64架构。