ERROR: Could not build wheels for python-ldap, which is required to install pyproject.toml-based projects
Asked Answered
S

5

10

I was installing Odoo 15 inside a Python virtual environment on Ubuntu 20.04. I've downloaded Odoo from the official GitHub repository and use Nginx as a reverse proxy.

after following the documentation to install and set up odoo in ubuntu 22.04, I did followed this how-to-do doc in this link

I get this error the moment I do install pip packages using the command pip install -r requirement.txt any help please.

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
Sanborne answered 14/3, 2023 at 18:15 Comment(1)
Please, take a look at how do I format code blocksVernacularize
R
5

You need to install on your system the GCC compiler package and the package that includes the development libraries and header files needed to compile applications that use LDAP

Resorcinol answered 14/3, 2023 at 22:16 Comment(4)
Can you please introduce them with more details?Cheyennecheyne
Package names depends on your Linux distribution. You can use the search command in your package manager to find the packages you need.Resorcinol
Does this work on windows operating system, am stucked with this error in subject. I have Installed Visual C++ Build tools but still am not able to install ldapDrafty
You can find links to unofficial pre-compiled packages for Windows on the Installing python-ldap page of the python-ldap documentation.Resorcinol
S
20

This issue is because in your system you don't have python-dev. Also use python 3.8+. However To solve your issue Use below code in terminal:

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
Secor answered 15/3, 2023 at 19:19 Comment(1)
Worth to mention you may need to install something like python3.11-dev, version specific library instead of just python3-dev.Drainpipe
R
5

You need to install on your system the GCC compiler package and the package that includes the development libraries and header files needed to compile applications that use LDAP

Resorcinol answered 14/3, 2023 at 22:16 Comment(4)
Can you please introduce them with more details?Cheyennecheyne
Package names depends on your Linux distribution. You can use the search command in your package manager to find the packages you need.Resorcinol
Does this work on windows operating system, am stucked with this error in subject. I have Installed Visual C++ Build tools but still am not able to install ldapDrafty
You can find links to unofficial pre-compiled packages for Windows on the Installing python-ldap page of the python-ldap documentation.Resorcinol
B
3

If you are using RPM based distributions with the YUM package manager, run this command in your terminal to resolve the issue:

sudo yum install openldap-devel
Bufford answered 24/4, 2023 at 8:22 Comment(0)
J
0

Downgrading libldap-2.5.0 to the right version (sudo apt install libldap-2.5-0=2.5.16+dfsg-0ubuntu0.22.04.2) was the solution for me to install libldap2-dev which in turn gave me the possibility to pip install the requirements file (was on Ubuntu 22.04 though)

Jedlicka answered 13/3 at 20:16 Comment(0)
A
0

A similar challenge arose for me when installing Odoo Server 17.0 Community Edition on Ubuntu 22.04.4 LTS (Jammy Jellyfish), utilizing Python 3.10.12. I found that using python3-ldap instead of python-ldap could potentially resolve this issue, particularly if you're working with Python 3 or a later version. To implement this solution, you can simply replace the line python-ldap==... in the requirements.txt file with python3-ldap.

Astred answered 20/3 at 3:41 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.