安装python-ldap包出现错误

3
我正在尝试使用PyCharm安装python-ldap包,但是出现了以下错误:

enter image description here

错误信息:

Collecting python-ldap Using cached https://files.pythonhosted.org/packages/7f/1c/28d721dff2fcd2fef9d55b40df63a00be26ec8a11e8c6fc612ae642f9cfd/python-ldap-3.1.0.tar.gz Collecting pyasn1>=0.3.7 (from python-ldap) Using cached https://files.pythonhosted.org/packages/a0/70/2c27740f08e477499ce19eefe05dbcae6f19fdc49e9e82ce4768be0643b9/pyasn1-0.4.3-py2.py3-none-any.whl Collecting pyasn1_modules>=0.1.5 (from python-ldap) Using cached https://files.pythonhosted.org/packages/e9/51/bcd96bf6231d4b2cc5e023c511bee86637ba375c44a6f9d1b4b7ad1ce4b9/pyasn1_modules-0.2.1-py2.py3-none-any.whl Installing collected packages: pyasn1, pyasn1-modules, python-ldap Running setup.py install for python-ldap: started Running setup.py install for python-ldap: finished with status 'error' Complete output from command C:\Users\Joan\PycharmProjects\prueba\venv\Scripts\python.exe -u -c "import setuptools, tokenize;file='C:\Users\Joan\AppData\Local\Temp\pycharm-packaging\python-ldap\setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record C:\Users\Joan\AppData\Local\Temp\pip-record-y2ot_u84\install-record.txt --single-version-externally-managed --compile --install-headers C:\Users\Joan\PycharmProjects\prueba\venv\include\site\python3.6\python-ldap: running install running build running build_py creating build\lib.win-amd64-3.6 copying Lib\ldapurl.py -> build\lib.win-amd64-3.6 copying Lib\ldif.py -> build\lib.win-amd64-3.6 creating build\lib.win-amd64-3.6\ldap copying Lib\ldap\async.py -> build\lib.win-amd64-3.6\ldap copying Lib\ldap\asyncsearch.py -> build\lib.win-amd64-3.6\ldap copying Lib\ldap\cidict.py -> build\lib.win-amd64-3.6\ldap copying Lib\ldap\compat.py -> build\lib.win-amd64-3.6\ldap copying Lib\ldap\constants.py -> build\lib.win-amd64-3.6\ldap copying Lib\ldap\dn.py -> build\lib.win-amd64-3.6\ldap copying Lib\ldap\filter.py -> build\lib.win-amd64-3.6\ldap copying Lib\ldap\functions.py -> build\lib.win-amd64-3.6\ldap copying Lib\ldap\ldapobject.py -> build\lib.win-amd64-3.6\ldap copying Lib\ldap\logger.py -> build\lib.win-amd64-3.6\ldap copying Lib\ldap\modlist.py -> build\lib.win-amd64-3.6\ldap copying Lib\ldap\pkginfo.py -> build\lib.win-amd64-3.6\ldap copying Lib\ldap\resiter.py -> build\lib.win-amd64-3.6\ldap copying Lib\ldap\sasl.py -> build\lib.win-amd64-3.6\ldap copying Lib\ldap\syncrepl.py -> build\lib.win-amd64-3.6\ldap copying Lib\ldap__init__.py -> build\lib.win-amd64-3.6\ldap creating build\lib.win-amd64-3.6\ldap\controls copying Lib\ldap\controls\deref.py -> build\lib.win-amd64-3.6\ldap\controls copying Lib\ldap\controls\libldap.py -> build\lib.win-amd64-3.6\ldap\controls copying Lib\ldap\controls\openldap.py -> build\lib.win-amd64-3.6\ldap\controls copying Lib\ldap\controls\pagedresults.py -> build\lib.win-amd64-3.6\ldap\controls copying Lib\ldap\controls\ppolicy.py -> build\lib.win-amd64-3.6\ldap\controls copying Lib\ldap\controls\psearch.py -> build\lib.win-amd64-3.6\ldap\controls copying Lib\ldap\controls\pwdpolicy.py -> build\lib.win-amd64-3.6\ldap\controls copying Lib\ldap\controls\readentry.py -> build\lib.win-amd64-3.6\ldap\controls copying Lib\ldap\controls\sessiontrack.py -> build\lib.win-amd64-3.6\ldap\controls copying Lib\ldap\controls\simple.py -> build\lib.win-amd64-3.6\ldap\controls copying Lib\ldap\controls\sss.py -> build\lib.win-amd64-3.6\ldap\controls copying Lib\ldap\controls\vlv.py -> build\lib.win-amd64-3.6\ldap\controls copying Lib\ldap\controls__init__.py -> build\lib.win-amd64-3.6\ldap\controls creating build\lib.win-amd64-3.6\ldap\extop copying Lib\ldap\extop\dds.py -> build\lib.win-amd64-3.6\ldap\extop copying Lib\ldap\extop__init__.py -> build\lib.win-amd64-3.6\ldap\extop creating build\lib.win-amd64-3.6\ldap\schema copying Lib\ldap\schema\models.py -> build\lib.win-amd64-3.6\ldap\schema copying Lib\ldap\schema\subentry.py -> build\lib.win-amd64-3.6\ldap\schema copying Lib\ldap\schema\tokenizer.py -> build\lib.win-amd64-3.6\ldap\schema copying Lib\ldap\schema__init__.py -> build\lib.win-amd64-3.6\ldap\schema creating build\lib.win-amd64-3.6\slapdtest copying Lib\slapdtest_slapdtest.py -> build\lib.win-amd64-3.6\slapdtest copying Lib\slapdtest__init__.py -> build\lib.win-amd64-3.6\slapdtest running egg_info writing Lib\python_ldap.egg-info\PKG-INFO writing dependency_links to Lib\python_ldap.egg-info\dependency_links.txt writing requirements to Lib\python_ldap.egg-info\requires.txt writing top-level names to Lib\python_ldap.egg-info\top_level.txt reading manifest file 'Lib\python_ldap.egg-info\SOURCES.txt' reading manifest template 'MANIFEST.in' no previously-included directories found matching 'Doc.build' writing manifest file 'Lib\python_ldap.egg-info\SOURCES.txt' creating build\lib.win-amd64-3.6\slapdtest\certs copying Lib\slapdtest\certs\README -> build\lib.win-amd64-3.6\slapdtest\certs copying Lib\slapdtest\certs\ca.conf -> build\lib.win-amd64-3.6\slapdtest\certs copying Lib\slapdtest\certs\ca.pem -> build\lib.win-amd64-3.6\slapdtest\certs copying Lib\slapdtest\certs\client.conf -> build\lib.win-amd64-3.6\slapdtest\certs copying Lib\slapdtest\certs\client.key -> build\lib.win-amd64-3.6\slapdtest\certs copying Lib\slapdtest\certs\client.pem -> build\lib.win-amd64-3.6\slapdtest\certs copying Lib\slapdtest\certs\gencerts.sh -> build\lib.win-amd64-3.6\slapdtest\certs copying Lib\slapdtest\certs\gennssdb.sh -> build\lib.win-amd64-3.6\slapdtest\certs copying Lib\slapdtest\certs\server.conf -> build\lib.win-amd64-3.6\slapdtest\certs copying Lib\slapdtest\certs\server.key -> build\lib.win-amd64-3.6\slapdtest\certs copying Lib\slapdtest\certs\server.pem -> build\lib.win-amd64-3.6\slapdtest\certs warning: build_py: byte-compiling is disabled, skipping.

running build_ext
building '_ldap' extension
creating build\temp.win-amd64-3.6
creating build\temp.win-amd64-3.6\Release
creating build\temp.win-amd64-3.6\Release\Modules
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DHAVE_SASL -DHAVE_TLS -DHAVE_LIBLDAP_R -DHAVE_LIBLDAP_R -DLDAPMODULE_VERSION=3.1.0 "-DLDAPMODULE_AUTHOR=python-ldap project" "-DLDAPMODULE_LICENSE=Python style" -IModules -IC:\Users\Joan\PycharmProjects\prueba\venv\include -IC:\Users\Joan\AppData\Local\Programs\Python\Python36\include -IC:\Users\Joan\AppData\Local\Programs\Python\Python36\include "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\shared" "-IC:\Program Files (x86)\Windows Kits\8.1\include\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\winrt" /TcModules/LDAPObject.c /Fobuild\temp.win-amd64-3.6\Release\Modules/LDAPObject.obj
LDAPObject.c
c:\users\joan\appdata\local\temp\pycharm-packaging\python-ldap\modules\constants.h(7): fatal error C1083: Cannot open include file: 'lber.h': No such file or directory
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\cl.exe' failed with exit status 2

----------------------------------------

命令"C:\Users\Joan\PycharmProjects\prueba\venv\Scripts\python.exe -u -c "import setuptools, tokenize;file='C:\Users\Joan\AppData\Local\Temp\pycharm-packaging\python-ldap\setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record C:\Users\Joan\AppData\Local\Temp\pip-record-y2ot_u84\install-record.txt --single-version-externally-managed --compile --install-headers C:\Users\Joan\PycharmProjects\prueba\venv\include\site\python3.6\python-ldap"执行失败,错误代码为1,在C:\Users\Joan\AppData\Local\Temp\pycharm-packaging\python-ldap\中。

我将感激所有的帮助,

提前谢谢!


1
请发布错误的文本内容,而不是图片。 - Phix
很难确定,因为你发布的第一张图片截断了错误消息,但看起来你缺少openldap头文件(和库)。这样的二进制依赖项不受pip install管理。 - larsks
哦,好的伙计们,我刚刚更新了它。 - Jplaudir8
Duplicate? https://dev59.com/cG445IYBdhLWcg3wnrvM - Dakota Williams
4个回答

6

为了解决由依赖关系引起的python-ldap安装错误,

请下载wheel文件。

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

3

在 Windows 上,对我来说在尝试了多种选项后可行的方法是:

    python -m pip install --only-binary :all: ldap

错误的库(应该是python-ldap,但它不起作用) - thug-gamer

2

这是因为pip试图编译OpenLDAP库,而python-ldap只是二进制库的一个包装器。如果您不想自己编译OpenLDAP库,那么我建议您使用这个网站: https://www.lfd.uci.edu/~gohlke/pythonlibs/

根据您使用的Python版本下载所需的wheel文件,例如python_ldap-3.2.0-cp37-cp37m-win_amd64.whl适用于Python 3.6 64位

然后安装:

python -m pip install python_ldap-3.2.0-cp37-cp37m-win_amd64.whl

0
Python LDAP documentation中可以看到,为了获得正确的安装(预构建要求),它需要一系列软件包。您需要运行的命令取决于操作系统。
不幸的是,这仅适用于基于Linux的操作系统。
希望能对您有所帮助!干杯

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接