Onnxoptimizer install error for concrete-ml

OS: WSL, Ubuntu 24.04.3 LTS
Python: 3.12.3
Cmake: 3.28.3
uv: 0.9.24

I am trying to install concrete-ml on my wsl machine. I am using uv in the following way:

uv pip install -U pip wheel setuptools
uv pip install concrete-ml

and I get the following error:

Resolved 79 packages in 614ms
  × Failed to build `onnxoptimizer==0.3.13`
  ├─▶ The build backend returned an error
  ╰─▶ Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)

      [stdout]
      running bdist_wheel
      running build
      running build_py
      running create_version
      running cmake_build
      --
      -- 3.20.1.0
      -- Found Python: /home/aclifton/.cache/uv/builds-v0/.tmpTOi2mq/bin/python (found version "3.12.3") found
      components: Interpreter
      -- Could NOT find Python (missing: Python_LIBRARIES Interpreter Development Development.Module
      Development.Embed) (found version "..")
      -- Could NOT find pybind11 (missing: pybind11_DIR)
      -- pybind11 v2.9.2
      -- Found PythonInterp: /home/aclifton/.cache/uv/builds-v0/.tmpTOi2mq/bin/python (found version "3.12.3")
      -- Found PythonLibs: python3.12
      --
      -- ******** Summary ********
      --   CMake version             : 3.28.3
      --   CMake command             : /usr/bin/cmake
      --   System                    : Linux
      --   C++ compiler              : /usr/bin/c++
      --   C++ compiler version      : 13.3.0
      --   CXX flags                 :  -Wnon-virtual-dtor
      --   Build type                : Release
      --   Compile definitions       : __STDC_FORMAT_MACROS
      --   CMAKE_PREFIX_PATH         :
      --   CMAKE_INSTALL_PREFIX      : /usr/local
      --   CMAKE_MODULE_PATH         :
      --
      --   ONNX version              : 1.13.0
      --   ONNX NAMESPACE            : onnx
      --   ONNX_USE_LITE_PROTO       : ON
      --   USE_PROTOBUF_SHARED_LIBS  : OFF
      --   Protobuf_USE_STATIC_LIBS  : ON
      --   ONNX_DISABLE_EXCEPTIONS   : OFF
      --   ONNX_WERROR               : OFF
      --   ONNX_BUILD_TESTS          : OFF
      --   ONNX_BUILD_BENCHMARKS     : OFF
      --
      --   Protobuf compiler         :
      --   Protobuf includes         :
      --   Protobuf libraries        :
      --   BUILD_ONNX_PYTHON         : ON
      --     Python version        :
      --     Python executable     : /home/aclifton/.cache/uv/builds-v0/.tmpTOi2mq/bin/python
      --     Python includes       :
      -- Configuring incomplete, errors occurred!

      [stderr]
      <string>:35: DeprecationWarning: Use shutil.which instead of find_executable
      fatal: invalid gitfile format: /home/aclifton/.cache/uv/sdists-v9/.git
      /home/aclifton/.cache/uv/builds-v0/.tmpTOi2mq/lib/python3.12/site-packages/setuptools/dist.py:599:
      SetuptoolsDeprecationWarning: Invalid dash-separated key 'license-file' in 'metadata' (setup.cfg), please use
      the underscore name 'license_file' instead.
      !!

              ********************************************************************************
              Usage of dash-separated 'license-file' will not be supported in future
              versions. Please use the underscore name 'license_file' instead.
              (Affected: onnxoptimizer).

              By 2026-Mar-03, you need to update your project and remove deprecated calls
              or your builds will no longer be supported.

              See https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for details.
              ********************************************************************************

      !!
        opt = self._enforce_underscore(opt, section)
      CMake Deprecation Warning at third_party/onnx/CMakeLists.txt:2 (cmake_minimum_required):
        Compatibility with CMake < 3.5 will be removed from a future version of
        CMake.

        Update the VERSION argument <min> value or use a ...<max> suffix to tell
        CMake that the project does not need compatibility with older versions.


      CMake Error at /usr/share/cmake-3.28/Modules/FindPython/Support.cmake:703 (file):
        file STRINGS file "/usr/include/python3.12/patchlevel.h" cannot be read.
      Call Stack (most recent call first):
        /usr/share/cmake-3.28/Modules/FindPython/Support.cmake:3564 (_python_get_version)
        /usr/share/cmake-3.28/Modules/FindPython.cmake:595 (include)
        third_party/onnx/CMakeLists.txt:123 (find_package)


      CMake Error at /usr/share/cmake-3.28/Modules/FindPython/Support.cmake:708 (list):
        list GET given empty list
      Call Stack (most recent call first):
        /usr/share/cmake-3.28/Modules/FindPython/Support.cmake:3564 (_python_get_version)
        /usr/share/cmake-3.28/Modules/FindPython.cmake:595 (include)
        third_party/onnx/CMakeLists.txt:123 (find_package)


      CMake Error at /usr/share/cmake-3.28/Modules/FindPython/Support.cmake:709 (list):
        list GET given empty list
      Call Stack (most recent call first):
        /usr/share/cmake-3.28/Modules/FindPython/Support.cmake:3564 (_python_get_version)
        /usr/share/cmake-3.28/Modules/FindPython.cmake:595 (include)
        third_party/onnx/CMakeLists.txt:123 (find_package)


      CMake Error at /usr/share/cmake-3.28/Modules/FindPython/Support.cmake:710 (list):
        list GET given empty list
      Call Stack (most recent call first):
        /usr/share/cmake-3.28/Modules/FindPython/Support.cmake:3564 (_python_get_version)
        /usr/share/cmake-3.28/Modules/FindPython.cmake:595 (include)
        third_party/onnx/CMakeLists.txt:123 (find_package)


      CMake Error at /usr/share/cmake-3.28/Modules/FindPython/Support.cmake:703 (file):
        file STRINGS file "/usr/include/python3.12/patchlevel.h" cannot be read.
      Call Stack (most recent call first):
        /usr/share/cmake-3.28/Modules/FindPython/Support.cmake:3564 (_python_get_version)
        /usr/share/cmake-3.28/Modules/FindPython.cmake:595 (include)
        third_party/onnx/CMakeLists.txt:123 (find_package)


      CMake Error at /usr/share/cmake-3.28/Modules/FindPython/Support.cmake:708 (list):
        list GET given empty list
      Call Stack (most recent call first):
        /usr/share/cmake-3.28/Modules/FindPython/Support.cmake:3564 (_python_get_version)
        /usr/share/cmake-3.28/Modules/FindPython.cmake:595 (include)
        third_party/onnx/CMakeLists.txt:123 (find_package)


      CMake Error at /usr/share/cmake-3.28/Modules/FindPython/Support.cmake:709 (list):
        list GET given empty list
      Call Stack (most recent call first):
        /usr/share/cmake-3.28/Modules/FindPython/Support.cmake:3564 (_python_get_version)
        /usr/share/cmake-3.28/Modules/FindPython.cmake:595 (include)
        third_party/onnx/CMakeLists.txt:123 (find_package)


      CMake Error at /usr/share/cmake-3.28/Modules/FindPython/Support.cmake:710 (list):
        list GET given empty list
      Call Stack (most recent call first):
        /usr/share/cmake-3.28/Modules/FindPython/Support.cmake:3564 (_python_get_version)
        /usr/share/cmake-3.28/Modules/FindPython.cmake:595 (include)
        third_party/onnx/CMakeLists.txt:123 (find_package)


      Generated:
      /home/aclifton/.cache/uv/sdists-v9/pypi/onnxoptimizer/0.3.13/ZHQe1fJJ1VwWHSujN-oQ8/src/.setuptools-cmake-build/third_party/onnx/onnx/onnx-ml.proto
      Generated:
      /home/aclifton/.cache/uv/sdists-v9/pypi/onnxoptimizer/0.3.13/ZHQe1fJJ1VwWHSujN-oQ8/src/.setuptools-cmake-build/third_party/onnx/onnx/onnx-operators-ml.proto
      Generated:
      /home/aclifton/.cache/uv/sdists-v9/pypi/onnxoptimizer/0.3.13/ZHQe1fJJ1VwWHSujN-oQ8/src/.setuptools-cmake-build/third_party/onnx/onnx/onnx-data.proto
      CMake Deprecation Warning at third_party/onnx/third_party/pybind11/CMakeLists.txt:8 (cmake_minimum_required):
        Compatibility with CMake < 3.5 will be removed from a future version of
        CMake.

        Update the VERSION argument <min> value or use a ...<max> suffix to tell
        CMake that the project does not need compatibility with older versions.


      CMake Warning (dev) at third_party/onnx/third_party/pybind11/tools/FindPythonLibsNew.cmake:98 (find_package):
        Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules
        are removed.  Run "cmake --help-policy CMP0148" for policy details.  Use
        the cmake_policy command to set the policy and suppress this warning.

      Call Stack (most recent call first):
        third_party/onnx/third_party/pybind11/tools/pybind11Tools.cmake:50 (find_package)
        third_party/onnx/third_party/pybind11/tools/pybind11Common.cmake:206 (include)
        third_party/onnx/third_party/pybind11/CMakeLists.txt:200 (include)
      This warning is for project developers.  Use -Wno-dev to suppress it.

      CMake Warning at CMakeLists.txt:87 (find_package):
        By not providing "Findpybind11.cmake" in CMAKE_MODULE_PATH this project has
        asked CMake to find a package configuration file provided by "pybind11",
        but CMake did not find one.

        Could not find a package configuration file provided by "pybind11"
        (requested version 2.2) with any of the following names:

          pybind11Config.cmake
          pybind11-config.cmake

        Add the installation prefix of "pybind11" to CMAKE_PREFIX_PATH or set
        "pybind11_DIR" to a directory containing one of the above files.  If
        "pybind11" provides a separate development package or SDK, be sure it has
        been installed.


      Traceback (most recent call last):
        File "<string>", line 11, in <module>
        File "/home/aclifton/.cache/uv/builds-v0/.tmpTOi2mq/lib/python3.12/site-packages/setuptools/build_meta.py",
      line 432, in build_wheel
          return _build(['bdist_wheel'])
                 ^^^^^^^^^^^^^^^^^^^^^^^
        File "/home/aclifton/.cache/uv/builds-v0/.tmpTOi2mq/lib/python3.12/site-packages/setuptools/build_meta.py",
      line 423, in _build
          return self._build_with_temp_dir(
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/home/aclifton/.cache/uv/builds-v0/.tmpTOi2mq/lib/python3.12/site-packages/setuptools/build_meta.py",
      line 404, in _build_with_temp_dir
          self.run_setup()
        File "/home/aclifton/.cache/uv/builds-v0/.tmpTOi2mq/lib/python3.12/site-packages/setuptools/build_meta.py",
      line 512, in run_setup
          super().run_setup(setup_script=setup_script)
        File "/home/aclifton/.cache/uv/builds-v0/.tmpTOi2mq/lib/python3.12/site-packages/setuptools/build_meta.py",
      line 317, in run_setup
          exec(code, locals())
        File "<string>", line 327, in <module>
        File "/home/aclifton/.cache/uv/builds-v0/.tmpTOi2mq/lib/python3.12/site-packages/setuptools/__init__.py", line
      115, in setup
          return distutils.core.setup(**attrs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/home/aclifton/.cache/uv/builds-v0/.tmpTOi2mq/lib/python3.12/site-packages/setuptools/_distutils/core.py",
      line 186, in setup
          return run_commands(dist)
                 ^^^^^^^^^^^^^^^^^^
        File "/home/aclifton/.cache/uv/builds-v0/.tmpTOi2mq/lib/python3.12/site-packages/setuptools/_distutils/core.py",
      line 202, in run_commands
          dist.run_commands()
        File "/home/aclifton/.cache/uv/builds-v0/.tmpTOi2mq/lib/python3.12/site-packages/setuptools/_distutils/dist.py",
      line 1002, in run_commands
          self.run_command(cmd)
        File "/home/aclifton/.cache/uv/builds-v0/.tmpTOi2mq/lib/python3.12/site-packages/setuptools/dist.py", line
      1102, in run_command
          super().run_command(command)
        File "/home/aclifton/.cache/uv/builds-v0/.tmpTOi2mq/lib/python3.12/site-packages/setuptools/_distutils/dist.py",
      line 1021, in run_command
          cmd_obj.run()
        File
      "/home/aclifton/.cache/uv/builds-v0/.tmpTOi2mq/lib/python3.12/site-packages/setuptools/command/bdist_wheel.py",
      line 370, in run
          self.run_command("build")
        File "/home/aclifton/.cache/uv/builds-v0/.tmpTOi2mq/lib/python3.12/site-packages/setuptools/_distutils/cmd.py",
      line 357, in run_command
          self.distribution.run_command(command)
        File "/home/aclifton/.cache/uv/builds-v0/.tmpTOi2mq/lib/python3.12/site-packages/setuptools/dist.py", line
      1102, in run_command
          super().run_command(command)
        File "/home/aclifton/.cache/uv/builds-v0/.tmpTOi2mq/lib/python3.12/site-packages/setuptools/_distutils/dist.py",
      line 1021, in run_command
          cmd_obj.run()
        File
      "/home/aclifton/.cache/uv/builds-v0/.tmpTOi2mq/lib/python3.12/site-packages/setuptools/_distutils/command/build.py",
      line 135, in run
          self.run_command(cmd_name)
        File "/home/aclifton/.cache/uv/builds-v0/.tmpTOi2mq/lib/python3.12/site-packages/setuptools/_distutils/cmd.py",
      line 357, in run_command
          self.distribution.run_command(command)
        File "/home/aclifton/.cache/uv/builds-v0/.tmpTOi2mq/lib/python3.12/site-packages/setuptools/dist.py", line
      1102, in run_command
          super().run_command(command)
        File "/home/aclifton/.cache/uv/builds-v0/.tmpTOi2mq/lib/python3.12/site-packages/setuptools/_distutils/dist.py",
      line 1021, in run_command
          cmd_obj.run()
        File "<string>", line 223, in run
        File "/home/aclifton/.cache/uv/builds-v0/.tmpTOi2mq/lib/python3.12/site-packages/setuptools/_distutils/cmd.py",
      line 357, in run_command
          self.distribution.run_command(command)
        File "/home/aclifton/.cache/uv/builds-v0/.tmpTOi2mq/lib/python3.12/site-packages/setuptools/dist.py", line
      1102, in run_command
          super().run_command(command)
        File "/home/aclifton/.cache/uv/builds-v0/.tmpTOi2mq/lib/python3.12/site-packages/setuptools/_distutils/dist.py",
      line 1021, in run_command
          cmd_obj.run()
        File "<string>", line 209, in run
        File "/usr/lib/python3.12/subprocess.py", line 413, in check_call
          raise CalledProcessError(retcode, cmd)
      subprocess.CalledProcessError: Command '['/usr/bin/cmake', '-DPython_INCLUDE_DIR=/usr/include/python3.12',
      '-DPython_EXECUTABLE=/home/aclifton/.cache/uv/builds-v0/.tmpTOi2mq/bin/python',
      '-DBUILD_ONNX_PYTHON=ON', '-DONNX_USE_LITE_PROTO=ON', '-DCMAKE_EXPORT_COMPILE_COMMANDS=ON',
      '-DONNX_NAMESPACE=onnx', '-DPY_EXT_SUFFIX=.cpython-312-x86_64-linux-gnu.so',
      '-DONNX_OPT_USE_SYSTEM_PROTOBUF=OFF', '-DCMAKE_BUILD_TYPE=Release', '-DONNX_ML=1',
      '/home/aclifton/.cache/uv/sdists-v9/pypi/onnxoptimizer/0.3.13/ZHQe1fJJ1VwWHSujN-oQ8/src']' returned non-zero
      exit status 1.

      hint: This usually indicates a problem with the package or the build environment.
  help: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip
        locking and syncing.

Any ideas on how to resolve this? Thanks in advance for your help!

1 Like

Hello @outofstep58,

Can you please try:

git clone https://github.com/zama-ai/concrete-ml.git
python3.9 -m venv .venv
source . venv/bin/activate
cd concrete-ml
make sync_env

Let me know if you have the same issue !

1 Like

@Celia Thank you for your reply!

I’ve got python 3.12. Do I need to install python 3.9?

I get the following error:

if [[ $(poetry --version) != "Poetry (version 1.8.4)" ]];then \
        echo "Current Poetry version is different than 1.8.4. Please update it.";\
else \
        if [[ $(uname) != "Linux" ]] && [[ $(uname) != "Darwin" ]]; then \
                poetry install --remove-untracked --only dev; \
        else \
                poetry install --remove-untracked --with dev; \
        fi; \
        "make" setup_env; \
fi
/usr/bin/bash: line 1: poetry: command not found
Current Poetry version is different than 1.8.4. Please update it.

I am using uv and not poetry if that is helpful.

Hey

Concrete ML supports 3.8 , 3.9 , 3.10 , 3.11 and 3.12

For the rest: we use poetry, we’ve never used another package manager, can you use poetry as well?

Cheers

@Celia I think that worked and I noticed that it installed the relevant packages into my uv venv.

I noticed in uv pip list there is a field next to concrete-ml that says /home/path/to/concrete-ml that points to the clone of the concrete-ml repo. I copied one of the simple linear regression examples available and I get an error saying Cannot resolve imported module concrete.ml.sklearn. What is the best way to resolve this?

Hi @outofstep58 , for me the fastest way is to use poetry, we do not support uv .
you can use python 3.12.

1 Like