错误:无法构建 python-ldap 的 wheels,这是安装基于 pyproject.toml 的项目所需要的。

5

我正在Ubuntu 20.04上的Python虚拟环境中安装Odoo 15。我从官方GitHub存储库下载了Odoo,并使用Nginx作为反向代理。

在按照文档在Ubuntu 22.04中安装和设置odoo之后,我按照此link中的操作说明进行了操作。

当我使用命令pip install -r requirement.txt安装pip软件包时,我遇到了这个错误,请帮忙解决。

Building wheels for collected packages: python-ldap
  Building wheel for python-ldap (pyproject.toml) ... error
  error: subprocess-exited-with-error
  
  × Building wheel for python-ldap (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [111 lines of output]
      /tmp/pip-build-env-rbfhnio_/overlay/lib/python3.10/site-packages/setuptools/config/setupcfg.py:516: SetuptoolsDeprecationWarning: The license_file parameter is deprecated, use license_files instead.
        warnings.warn(msg, warning_class)
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.linux-x86_64-cpython-310
      copying Lib/ldapurl.py -> build/lib.linux-x86_64-cpython-310
      copying Lib/ldif.py -> build/lib.linux-x86_64-cpython-310
      creating build/lib.linux-x86_64-cpython-310/ldap
      copying Lib/ldap/resiter.py -> build/lib.linux-x86_64-cpython-310/ldap
      copying Lib/ldap/syncrepl.py -> build/lib.linux-x86_64-cpython-310/ldap
      copying Lib/ldap/__init__.py -> build/lib.linux-x86_64-cpython-310/ldap
      copying Lib/ldap/dn.py -> build/lib.linux-x86_64-cpython-310/ldap
      copying Lib/ldap/async.py -> build/lib.linux-x86_64-cpython-310/ldap
      copying Lib/ldap/sasl.py -> build/lib.linux-x86_64-cpython-310/ldap
      copying Lib/ldap/asyncsearch.py -> build/lib.linux-x86_64-cpython-310/ldap
      copying Lib/ldap/logger.py -> build/lib.linux-x86_64-cpython-310/ldap
      copying Lib/ldap/functions.py -> build/lib.linux-x86_64-cpython-310/ldap
      copying Lib/ldap/modlist.py -> build/lib.linux-x86_64-cpython-310/ldap
      copying Lib/ldap/constants.py -> build/lib.linux-x86_64-cpython-310/ldap
      copying Lib/ldap/ldapobject.py -> build/lib.linux-x86_64-cpython-310/ldap
      copying Lib/ldap/filter.py -> build/lib.linux-x86_64-cpython-310/ldap
      copying Lib/ldap/pkginfo.py -> build/lib.linux-x86_64-cpython-310/ldap
      copying Lib/ldap/cidict.py -> build/lib.linux-x86_64-cpython-310/ldap
      copying Lib/ldap/compat.py -> build/lib.linux-x86_64-cpython-310/ldap
      creating build/lib.linux-x86_64-cpython-310/ldap/controls
      copying Lib/ldap/controls/psearch.py -> build/lib.linux-x86_64-cpython-310/ldap/controls
      copying Lib/ldap/controls/sessiontrack.py -> build/lib.linux-x86_64-cpython-310/ldap/controls
      copying Lib/ldap/controls/simple.py -> build/lib.linux-x86_64-cpython-310/ldap/controls
      copying Lib/ldap/controls/__init__.py -> build/lib.linux-x86_64-cpython-310/ldap/controls
      copying Lib/ldap/controls/vlv.py -> build/lib.linux-x86_64-cpython-310/ldap/controls
      copying Lib/ldap/controls/sss.py -> build/lib.linux-x86_64-cpython-310/ldap/controls
      copying Lib/ldap/controls/libldap.py -> build/lib.linux-x86_64-cpython-310/ldap/controls
      copying Lib/ldap/controls/pagedresults.py -> build/lib.linux-x86_64-cpython-310/ldap/controls
      copying Lib/ldap/controls/pwdpolicy.py -> build/lib.linux-x86_64-cpython-310/ldap/controls
      copying Lib/ldap/controls/readentry.py -> build/lib.linux-x86_64-cpython-310/ldap/controls
      copying Lib/ldap/controls/deref.py -> build/lib.linux-x86_64-cpython-310/ldap/controls
      copying Lib/ldap/controls/ppolicy.py -> build/lib.linux-x86_64-cpython-310/ldap/controls
      copying Lib/ldap/controls/openldap.py -> build/lib.linux-x86_64-cpython-310/ldap/controls
      creating build/lib.linux-x86_64-cpython-310/ldap/extop
      copying Lib/ldap/extop/passwd.py -> build/lib.linux-x86_64-cpython-310/ldap/extop
      copying Lib/ldap/extop/__init__.py -> build/lib.linux-x86_64-cpython-310/ldap/extop
      copying Lib/ldap/extop/dds.py -> build/lib.linux-x86_64-cpython-310/ldap/extop
      creating build/lib.linux-x86_64-cpython-310/ldap/schema
      copying Lib/ldap/schema/__init__.py -> build/lib.linux-x86_64-cpython-310/ldap/schema
      copying Lib/ldap/schema/subentry.py -> build/lib.linux-x86_64-cpython-310/ldap/schema
      copying Lib/ldap/schema/tokenizer.py -> build/lib.linux-x86_64-cpython-310/ldap/schema
      copying Lib/ldap/schema/models.py -> build/lib.linux-x86_64-cpython-310/ldap/schema
      creating build/lib.linux-x86_64-cpython-310/slapdtest
      copying Lib/slapdtest/__init__.py -> build/lib.linux-x86_64-cpython-310/slapdtest
      copying Lib/slapdtest/_slapdtest.py -> build/lib.linux-x86_64-cpython-310/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'
      adding license file 'LICENCE'
      writing manifest file 'Lib/python_ldap.egg-info/SOURCES.txt'
      /tmp/pip-build-env-rbfhnio_/overlay/lib/python3.10/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning:     Installing 'slapdtest.certs' as data is deprecated, please list it in `packages`.
          !!
      
      
          ############################
          # Package would be ignored #
          ############################
          Python recognizes 'slapdtest.certs' as an importable package,
          but it is not listed in the `packages` configuration of setuptools.
      
          'slapdtest.certs' has been automatically added to the distribution only
          because it may contain data files, but this behavior is likely to change
          in future versions of setuptools (and therefore is considered deprecated).
      
          Please make sure that 'slapdtest.certs' is included as a package by using
          the `packages` configuration field or the proper discovery methods
          (for example by using `find_namespace_packages(...)`/`find_namespace:`
          instead of `find_packages(...)`/`find:`).
      
          You can read more about "package discovery" and "data files" on setuptools
          documentation page.
      
      
      !!
      
        check.warn(importable)
      creating build/lib.linux-x86_64-cpython-310/slapdtest/certs
      copying Lib/slapdtest/certs/README -> build/lib.linux-x86_64-cpython-310/slapdtest/certs
      copying Lib/slapdtest/certs/ca.conf -> build/lib.linux-x86_64-cpython-310/slapdtest/certs
      copying Lib/slapdtest/certs/ca.pem -> build/lib.linux-x86_64-cpython-310/slapdtest/certs
      copying Lib/slapdtest/certs/client.conf -> build/lib.linux-x86_64-cpython-310/slapdtest/certs
      copying Lib/slapdtest/certs/client.key -> build/lib.linux-x86_64-cpython-310/slapdtest/certs
      copying Lib/slapdtest/certs/client.pem -> build/lib.linux-x86_64-cpython-310/slapdtest/certs
      copying Lib/slapdtest/certs/gencerts.sh -> build/lib.linux-x86_64-cpython-310/slapdtest/certs
      copying Lib/slapdtest/certs/gennssdb.sh -> build/lib.linux-x86_64-cpython-310/slapdtest/certs
      copying Lib/slapdtest/certs/server.conf -> build/lib.linux-x86_64-cpython-310/slapdtest/certs
      copying Lib/slapdtest/certs/server.key -> build/lib.linux-x86_64-cpython-310/slapdtest/certs
      copying Lib/slapdtest/certs/server.pem -> build/lib.linux-x86_64-cpython-310/slapdtest/certs
      running build_ext
      building '_ldap' extension
      creating build/temp.linux-x86_64-cpython-310
      creating build/temp.linux-x86_64-cpython-310/Modules
      x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -DHAVE_SASL -DHAVE_TLS -DHAVE_LIBLDAP_R -DHAVE_LIBLDAP_R -DLDAPMODULE_VERSION=3.4.0 "-DLDAPMODULE_AUTHOR=python-ldap project" "-DLDAPMODULE_LICENSE=Python style" -IModules -I/opt/odoo15/odoo-venv/include -I/usr/include/python3.10 -c Modules/LDAPObject.c -o build/temp.linux-x86_64-cpython-310/Modules/LDAPObject.o
      In file included from Modules/LDAPObject.c:3:
      Modules/common.h:15:10: fatal error: lber.h: No such file or directory
         15 | #include <lber.h>
            |          ^~~~~~~~
      compilation terminated.
      error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for python-ldap
Failed to build python-ldap
ERROR: Could not build wheels for python-ldap, which is required to install pyproject.toml-based projects

请查看如何格式化代码块 - Marcelo Paco
请查看如何格式化代码块 - undefined
3个回答

8

这个问题是因为你的系统中没有安装python-dev。同时请使用python 3.8+版本。为了解决这个问题,请在终端中使用以下代码:

sudo apt-get install python3-dev libxml2-dev libxslt1-dev zlib1g-dev libsasl2-dev libldap2-dev build-essential libssl-dev libffi-dev libmysqlclient-dev libjpeg-dev libpq-dev libjpeg8-dev liblcms2-dev libblas-dev libatlas-base-dev

2

为解决此问题,请在终端中运行以下命令:

sudo yum install openldap-devel

2

你需要在你的系统上安装GCC编译器包和包含开发库和头文件的软件包,以便编译使用LDAP的应用程序。


请您能否详细介绍他们? - Arsham Arya
请您能否详细介绍一下他们? - undefined
软件包名称取决于您的Linux发行版。您可以使用软件包管理器中的搜索命令来查找所需的软件包。 - ivanov17
软件包名称取决于您的Linux发行版。您可以使用软件包管理器中的搜索命令来查找您所需的软件包。 - undefined

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