dusty-nv / jetson-containers

Machine Learning Containers for NVIDIA Jetson and JetPack-L4T
MIT License
2.09k stars 435 forks source link

ERROR: Could not build wheels for onnx, which is required to install pyproject.toml-based projects / ModuleNotFoundError: No module named 'google' #349

Open Bonitodelcapo opened 8 months ago

Bonitodelcapo commented 8 months ago

While building a container with pytorch, torchvision and openCV i get the following error:

[...]
  [ 86%] Running C++ protocol buffer compiler on /tmp/pip-req-build-5mz9t9v5/.setuptools-cmake-build/onnx/onnx-ml.proto
  Traceback (most recent call last):
    File "/tmp/pip-req-build-5mz9t9v5/.setuptools-cmake-build/tools/protoc-gen-mypy.py", line 28, in <module>
      import google.protobuf.descriptor_pb2 as d_typed
  ModuleNotFoundError: No module named 'google'

  The above exception was the direct cause of the following exception:

  Traceback (most recent call last):
    File "/tmp/pip-req-build-5mz9t9v5/.setuptools-cmake-build/tools/protoc-gen-mypy.py", line 31, in <module>
      raise RuntimeError("Failed to generate mypy stubs") from e
  RuntimeError: Failed to generate mypy stubs
  --mypy_out: protoc-gen-mypy: Plugin failed with status code 1.
  make[2]: *** [CMakeFiles/gen_onnx_proto.dir/build.make:74: onnx/onnx-ml.pb.cc] Error 1
  make[1]: *** [CMakeFiles/Makefile2:722: CMakeFiles/gen_onnx_proto.dir/all] Error 2
  make: *** [Makefile:136: all] Error 2
  Traceback (most recent call last):
    File "/usr/local/lib/python3.8/dist-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
      main()
    File "/usr/local/lib/python3.8/dist-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
      json_out['return_val'] = hook(**hook_input['kwargs'])
    File "/usr/local/lib/python3.8/dist-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 251, in build_wheel
      return _build_backend().build_wheel(wheel_directory, config_settings,
    File "/tmp/pip-build-env-duyfqp41/overlay/lib/python3.8/site-packages/setuptools/build_meta.py", line 404, in build_wheel
      return self._build_with_temp_dir(
    File "/tmp/pip-build-env-duyfqp41/overlay/lib/python3.8/site-packages/setuptools/build_meta.py", line 389, in _build_with_temp_dir
      self.run_setup()
    File "/tmp/pip-build-env-duyfqp41/overlay/lib/python3.8/site-packages/setuptools/build_meta.py", line 311, in run_setup
      exec(code, locals())
    File "<string>", line 321, in <module>
    File "/tmp/pip-build-env-duyfqp41/overlay/lib/python3.8/site-packages/setuptools/__init__.py", line 103, in setup
      return distutils.core.setup(**attrs)
    File "/tmp/pip-build-env-duyfqp41/overlay/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 185, in setup
      return run_commands(dist)
    File "/tmp/pip-build-env-duyfqp41/overlay/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
      dist.run_commands()
    File "/tmp/pip-build-env-duyfqp41/overlay/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
      self.run_command(cmd)
    File "/tmp/pip-build-env-duyfqp41/overlay/lib/python3.8/site-packages/setuptools/dist.py", line 963, in run_command
      super().run_command(command)
    File "/tmp/pip-build-env-duyfqp41/overlay/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
      cmd_obj.run()
    File "/tmp/pip-build-env-duyfqp41/normal/lib/python3.8/site-packages/wheel/bdist_wheel.py", line 368, in run
      self.run_command("build")
    File "/tmp/pip-build-env-duyfqp41/overlay/lib/python3.8/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
      self.distribution.run_command(command)
    File "/tmp/pip-build-env-duyfqp41/overlay/lib/python3.8/site-packages/setuptools/dist.py", line 963, in run_command
      super().run_command(command)
    File "/tmp/pip-build-env-duyfqp41/overlay/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
      cmd_obj.run()
    File "/tmp/pip-build-env-duyfqp41/overlay/lib/python3.8/site-packages/setuptools/_distutils/command/build.py", line 131, in run
      self.run_command(cmd_name)
    File "/tmp/pip-build-env-duyfqp41/overlay/lib/python3.8/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
      self.distribution.run_command(command)
    File "/tmp/pip-build-env-duyfqp41/overlay/lib/python3.8/site-packages/setuptools/dist.py", line 963, in run_command
      super().run_command(command)
    File "/tmp/pip-build-env-duyfqp41/overlay/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
      cmd_obj.run()
    File "<string>", line 258, in run
    File "/tmp/pip-build-env-duyfqp41/overlay/lib/python3.8/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
      self.distribution.run_command(command)
    File "/tmp/pip-build-env-duyfqp41/overlay/lib/python3.8/site-packages/setuptools/dist.py", line 963, in run_command
      super().run_command(command)
    File "/tmp/pip-build-env-duyfqp41/overlay/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
      cmd_obj.run()
    File "<string>", line 237, in run
    File "/usr/lib/python3.8/subprocess.py", line 364, in check_call
      raise CalledProcessError(retcode, cmd)
  subprocess.CalledProcessError: Command '['/usr/local/bin/cmake', '--build', '.', '--', '-j', '8']' returned non-zero exit status 2.
  error: subprocess-exited-with-error

  × Building wheel for onnx (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> See above for output.

  note: This error originates from a subprocess, and is likely not a problem with pip.
  full command: /usr/bin/python3 /usr/local/lib/python3.8/dist-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py build_wheel /tmp/tmp7qiwwnu9
  cwd: /tmp/pip-req-build-5mz9t9v5
  Building wheel for onnx (pyproject.toml): finished with status 'error'
  ERROR: Failed building wheel for onnx
Failed to build onnx
ERROR: Could not build wheels for onnx, which is required to install pyproject.toml-based projects
The command '/bin/sh -c pip3 install --no-cache-dir --verbose git+https://github.com/onnx/onnx@${ONNX_VERSION}' returned a non-zero code: 1
Traceback (most recent call last):
  File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/home/__/jetson-containers/jetson_containers/build.py", line 96, in <module>
    build_container(args.name, args.packages, args.base, args.build_flags, args.simulate, args.skip_tests, args.test_only, args.push, args.no_github_api)
  File "/home/__/jetson-containers/jetson_containers/container.py", line 141, in build_container
    status = subprocess.run(cmd.replace(_NEWLINE_, ' '), executable='/bin/bash', shell=True, check=True)  
  File "/usr/lib/python3.8/subprocess.py", line 516, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command 'sudo docker build --network=host --tag lzdv_base:r35.3.1-onnx --file /home/__/jetson-containers/packages/onnx/Dockerfile --build-arg BASE_IMAGE=lzdv_base:r35.3.1-cmake --build-arg ONNX_VERSION="main" /home/__/jetson-containers/packages/onnx 2>&1 | tee /home/__/jetson-containers/logs/20231211_162258/build/lzdv_base_r35.3.1-onnx.txt; exit ${PIPESTATUS[0]}' returned non-zero exit status 1.

Of particular interest ModuleNotFoundError: No module named 'google'

dusty-nv commented 8 months ago

Thanks @Bonitodelcapo, this appears to be caused by this recent PR to onnx repo: https://github.com/onnx/onnx/pull/5777

I have issued a fix for it in the dev branch of jetson-containers with commit https://github.com/dusty-nv/jetson-containers/commit/4b3d959edba51f460fe82036f0740cc8f56a1f51, and it is building okay here again.