daquexian / onnx-simplifier

Simplify your onnx model
Apache License 2.0
3.67k stars 377 forks source link

[BUG] Cannot install on Xavier AGX with JetPack 5.1, Python 3.8 #295

Closed GiorgosBetsos closed 1 year ago

GiorgosBetsos commented 1 year ago

I tried:

pip3 install -U pip && pip3 install onnxsim

and got following output:

Requirement already satisfied: pip in ./envs/torch/lib/python3.8/site-packages (23.1.2) Collecting onnxsim Using cached onnxsim-0.4.33.tar.gz (20.1 MB) Preparing metadata (setup.py) ... done Requirement already satisfied: onnx in ./envs/torch/lib/python3.8/site-packages (from onnxsim) (1.14.0) Collecting rich (from onnxsim) Using cached rich-13.4.2-py3-none-any.whl (239 kB) Requirement already satisfied: numpy in ./envs/torch/lib/python3.8/site-packages (from onnx->onnxsim) (1.24.4) Requirement already satisfied: protobuf>=3.20.2 in ./envs/torch/lib/python3.8/site-packages (from onnx->onnxsim) (4.23.3) Requirement already satisfied: typing-extensions>=3.6.2.1 in ./envs/torch/lib/python3.8/site-packages (from onnx->onnxsim) (4.6.3) Collecting markdown-it-py>=2.2.0 (from rich->onnxsim) Using cached markdown_it_py-3.0.0-py3-none-any.whl (87 kB) Collecting pygments<3.0.0,>=2.13.0 (from rich->onnxsim) Using cached Pygments-2.15.1-py3-none-any.whl (1.1 MB) Collecting mdurl~=0.1 (from markdown-it-py>=2.2.0->rich->onnxsim) Using cached mdurl-0.1.2-py3-none-any.whl (10.0 kB) Building wheels for collected packages: onnxsim Building wheel for onnxsim (setup.py) ... error error: subprocess-exited-with-error

× python setup.py bdist_wheel did not run successfully. │ exit code: 1 ╰─> [144 lines of output] fatal: not a git repository (or any of the parent directories): .git fatal: not a git repository (or any of the parent directories): .git /home/nvidia/envs/torch/lib/python3.8/site-packages/setuptools/init.py:84: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated. !!

          ********************************************************************************
          Requirements should be satisfied by a PEP 517 installer.
          If you are using pip, you can try `pip install --use-pep517`.
          ********************************************************************************

  !!
    dist.fetch_build_eggs(dist.setup_requires)
  running bdist_wheel
  running build
  running build_py
  running create_version
  creating build
  creating build/lib.linux-aarch64-cpython-38
  creating build/lib.linux-aarch64-cpython-38/onnxsim
  copying onnxsim/__main__.py -> build/lib.linux-aarch64-cpython-38/onnxsim
  copying onnxsim/model_checking.py -> build/lib.linux-aarch64-cpython-38/onnxsim
  copying onnxsim/version.py -> build/lib.linux-aarch64-cpython-38/onnxsim
  copying onnxsim/model_info.py -> build/lib.linux-aarch64-cpython-38/onnxsim
  copying onnxsim/onnx_simplifier.py -> build/lib.linux-aarch64-cpython-38/onnxsim
  copying onnxsim/__init__.py -> build/lib.linux-aarch64-cpython-38/onnxsim
  running egg_info
  writing onnxsim.egg-info/PKG-INFO
  writing dependency_links to onnxsim.egg-info/dependency_links.txt
  writing entry points to onnxsim.egg-info/entry_points.txt
  writing requirements to onnxsim.egg-info/requires.txt
  writing top-level names to onnxsim.egg-info/top_level.txt
  reading manifest file 'onnxsim.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  warning: no files found matching '*.c' under directory 'onnxsim'
  warning: no files found matching '*.proto' under directory 'onnxsim'
  warning: no previously-included files matching '*' found under directory 'third_party/onnxruntime'
  warning: no previously-included files matching '*' found under directory 'third_party/onnx-optimizer/build'
  warning: no previously-included files matching '*' found under directory 'third_party/onnx/build'
  warning: no previously-included files matching '*' found under directory 'third_party/onnx/onnx/backend'
  adding license file 'LICENSE'
  writing manifest file 'onnxsim.egg-info/SOURCES.txt'
  /home/nvidia/envs/torch/lib/python3.8/site-packages/setuptools/command/build_py.py:201: _Warning: Package 'onnxsim.bin' is absent from the `packages` configuration.
  !!

          ********************************************************************************
          ############################
          # Package would be ignored #
          ############################
          Python recognizes 'onnxsim.bin' as an importable package[^1],
          but it is absent from setuptools' `packages` configuration.

          This leads to an ambiguous overall configuration. If you want to distribute this
          package, please make sure that 'onnxsim.bin' is explicitly added
          to the `packages` configuration field.

          Alternatively, you can also rely on setuptools' discovery methods
          (for example by using `find_namespace_packages(...)`/`find_namespace:`
          instead of `find_packages(...)`/`find:`).

          You can read more about "package discovery" on setuptools documentation page:

          - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html

          If you don't want 'onnxsim.bin' to be distributed and are
          already explicitly excluding 'onnxsim.bin' via
          `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`,
          you can try to use `exclude_package_data`, or `include-package-data=False` in
          combination with a more fine grained `package-data` configuration.

          You can read more about "package data files" on setuptools documentation page:

          - https://setuptools.pypa.io/en/latest/userguide/datafiles.html

          [^1]: For Python, any directory (with suitable naming) can be imported,
                even if it does not contain any `.py` files.
                On the other hand, currently there is no concept of package data
                directory, all directories are treated like packages.
          ********************************************************************************

  !!
    check.warn(importable)
  copying onnxsim/cpp2py_export.cc -> build/lib.linux-aarch64-cpython-38/onnxsim
  copying onnxsim/cxxopts.hpp -> build/lib.linux-aarch64-cpython-38/onnxsim
  copying onnxsim/onnxsim.cpp -> build/lib.linux-aarch64-cpython-38/onnxsim
  copying onnxsim/onnxsim.h -> build/lib.linux-aarch64-cpython-38/onnxsim
  creating build/lib.linux-aarch64-cpython-38/onnxsim/bin
  copying onnxsim/bin/onnxsim_bin.cpp -> build/lib.linux-aarch64-cpython-38/onnxsim/bin
  copying onnxsim/bin/onnxsim_option.cpp -> build/lib.linux-aarch64-cpython-38/onnxsim/bin
  copying onnxsim/bin/onnxsim_option.h -> build/lib.linux-aarch64-cpython-38/onnxsim/bin
  running build_ext
  running cmake_build
  Run command ['/usr/bin/cmake', '-DPython_INCLUDE_DIR=/usr/include/python3.8', '-DPython_EXECUTABLE=/home/nvidia/envs/torch/bin/python3', '-DPYTHON_EXECUTABLE=/home/nvidia/envs/torch/bin/python3', '-DBUILD_ONNX_PYTHON=OFF', '-DONNXSIM_PYTHON=ON', '-DONNXSIM_BUILTIN_ORT=OFF', '-DONNX_USE_LITE_PROTO=OFF', '-DCMAKE_EXPORT_COMPILE_COMMANDS=ON', '-DONNX_NAMESPACE=onnx', '-DPY_EXT_SUFFIX=.cpython-38-aarch64-linux-gnu.so', '-DONNX_OPT_USE_SYSTEM_PROTOBUF=OFF', '-DCMAKE_BUILD_TYPE=Release', '-DONNX_ML=1', '/tmp/pip-install-ke7kjggw/onnxsim_1b53a443562f4aa3826c27294e410295']
  CMake Error at CMakeLists.txt:1 (cmake_minimum_required):
    CMake 3.22 or higher is required.  You are running version 3.16.3

  -- Configuring incomplete, errors occurred!
  Traceback (most recent call last):
    File "<string>", line 2, in <module>
    File "<pip-setuptools-caller>", line 34, in <module>
    File "/tmp/pip-install-ke7kjggw/onnxsim_1b53a443562f4aa3826c27294e410295/setup.py", line 279, in <module>
      setuptools.setup(
    File "/home/nvidia/envs/torch/lib/python3.8/site-packages/setuptools/__init__.py", line 107, in setup
      return distutils.core.setup(**attrs)
    File "/home/nvidia/envs/torch/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 185, in setup
      return run_commands(dist)
    File "/home/nvidia/envs/torch/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
      dist.run_commands()
    File "/home/nvidia/envs/torch/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
      self.run_command(cmd)
    File "/home/nvidia/envs/torch/lib/python3.8/site-packages/setuptools/dist.py", line 1234, in run_command
      super().run_command(command)
    File "/home/nvidia/envs/torch/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
      cmd_obj.run()
    File "/usr/lib/python3/dist-packages/wheel/bdist_wheel.py", line 223, in run
      self.run_command('build')
    File "/home/nvidia/envs/torch/lib/python3.8/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
      self.distribution.run_command(command)
    File "/home/nvidia/envs/torch/lib/python3.8/site-packages/setuptools/dist.py", line 1234, in run_command
      super().run_command(command)
    File "/home/nvidia/envs/torch/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
      cmd_obj.run()
    File "/home/nvidia/envs/torch/lib/python3.8/site-packages/setuptools/_distutils/command/build.py", line 131, in run
      self.run_command(cmd_name)
    File "/home/nvidia/envs/torch/lib/python3.8/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
      self.distribution.run_command(command)
    File "/home/nvidia/envs/torch/lib/python3.8/site-packages/setuptools/dist.py", line 1234, in run_command
      super().run_command(command)
    File "/home/nvidia/envs/torch/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
      cmd_obj.run()
    File "/tmp/pip-install-ke7kjggw/onnxsim_1b53a443562f4aa3826c27294e410295/setup.py", line 220, in run
      self.run_command('cmake_build')
    File "/home/nvidia/envs/torch/lib/python3.8/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
      self.distribution.run_command(command)
    File "/home/nvidia/envs/torch/lib/python3.8/site-packages/setuptools/dist.py", line 1234, in run_command
      super().run_command(command)
    File "/home/nvidia/envs/torch/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
      cmd_obj.run()
    File "/tmp/pip-install-ke7kjggw/onnxsim_1b53a443562f4aa3826c27294e410295/setup.py", line 194, in run
      subprocess.check_call(cmake_args)
    File "/usr/lib/python3.8/subprocess.py", line 364, in check_call
      raise CalledProcessError(retcode, cmd)
  subprocess.CalledProcessError: Command '['/usr/bin/cmake', '-DPython_INCLUDE_DIR=/usr/include/python3.8', '-DPython_EXECUTABLE=/home/nvidia/envs/torch/bin/python3', '-DPYTHON_EXECUTABLE=/home/nvidia/envs/torch/bin/python3', '-DBUILD_ONNX_PYTHON=OFF', '-DONNXSIM_PYTHON=ON', '-DONNXSIM_BUILTIN_ORT=OFF', '-DONNX_USE_LITE_PROTO=OFF', '-DCMAKE_EXPORT_COMPILE_COMMANDS=ON', '-DONNX_NAMESPACE=onnx', '-DPY_EXT_SUFFIX=.cpython-38-aarch64-linux-gnu.so', '-DONNX_OPT_USE_SYSTEM_PROTOBUF=OFF', '-DCMAKE_BUILD_TYPE=Release', '-DONNX_ML=1', '/tmp/pip-install-ke7kjggw/onnxsim_1b53a443562f4aa3826c27294e410295']' returned non-zero exit status 1.
  [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for onnxsim Running setup.py clean for onnxsim Failed to build onnxsim ERROR: Could not build wheels for onnxsim, which is required to install pyproject.toml-based projects

GiorgosBetsos commented 1 year ago

Issue was resolved after installing cmake version 3.26.4. I was using version 3.12 before.