Megvii-BaseDetection / Megvii-BaseDetection/YOLOX

YOLOX is not installing

Open
#1,585 15 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
10.6k
Forks
2.5k
PR merge metrics
No merged PRs in 30d

Description

To install yolox I did these two:

git clone git@github.com:Megvii-BaseDetection/YOLOX.git
cd YOLOX

Then pip3 install -v -e . is not working. Here is the log of this command.

Using pip 22.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10)
Defaulting to user installation because normal site-packages is not writeable
Obtaining file:///mnt/Shared/azimjon/YOLOX
  Running command python setup.py egg_info
  running egg_info
  creating /tmp/pip-pip-egg-info-ypvf739l/yolox.egg-info
  writing /tmp/pip-pip-egg-info-ypvf739l/yolox.egg-info/PKG-INFO
  writing dependency_links to /tmp/pip-pip-egg-info-ypvf739l/yolox.egg-info/dependency_links.txt
  writing requirements to /tmp/pip-pip-egg-info-ypvf739l/yolox.egg-info/requires.txt
  writing top-level names to /tmp/pip-pip-egg-info-ypvf739l/yolox.egg-info/top_level.txt
  writing manifest file '/tmp/pip-pip-egg-info-ypvf739l/yolox.egg-info/SOURCES.txt'
  /home/azimjon/.local/lib/python3.10/site-packages/torch/utils/cpp_extension.py:476: UserWarning: Attempted to use ninja as the BuildExtension backend but we could not find ninja.. Falling back to using the slow distutils backend.
    warnings.warn(msg.format('we could not find ninja.'))
  reading manifest file '/tmp/pip-pip-egg-info-ypvf739l/yolox.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  warning: no files found matching '*.cu' under directory 'yolox'
  warning: no files found matching '*.cuh' under directory 'yolox'
  warning: no files found matching '*.cc' under directory 'yolox'
  adding license file 'LICENSE'
  writing manifest file '/tmp/pip-pip-egg-info-ypvf739l/yolox.egg-info/SOURCES.txt'
  Preparing metadata (setup.py) ... done
Collecting loguru
  Using cached loguru-0.6.0-py3-none-any.whl (58 kB)
Collecting ninja
  Using cached ninja-1.11.1-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (145 kB)
Collecting numpy
  Using cached numpy-1.24.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.3 MB)
Collecting onnx-simplifier==0.4.1
  Using cached onnx-simplifier-0.4.1.tar.gz (19.8 MB)
  Running command python setup.py egg_info
  fatal: not a git repository (or any of the parent directories): .git
  fatal: not a git repository (or any of the parent directories): .git
  Traceback (most recent call last):
    File "<string>", line 2, in <module>
    File "<pip-setuptools-caller>", line 34, in <module>
    File "/tmp/pip-install-q2xkxl0n/onnx-simplifier_795fe5484b37426fb7feb48837b76bd9/setup.py", line 64, in <module>
      assert CMAKE, 'Could not find "cmake" executable!'
  AssertionError: Could not find "cmake" executable!
  error: subprocess-exited-with-error
  
  × python setup.py egg_info 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 -c '
  exec(compile('"'"''"'"''"'"'
  # This is <pip-setuptools-caller> -- a caller that pip uses to run setup.py
  #
  # - It imports setuptools before invoking setup.py, to enable projects that directly
  #   import from `distutils.core` to work with newer packaging standards.
  # - It provides a clear error message when setuptools is not installed.
  # - It sets `sys.argv[0]` to the underlying `setup.py`, when invoking `setup.py` so
  #   setuptools doesn'"'"'t think the script is `-c`. This avoids the following warning:
  #     manifest_maker: standard file '"'"'-c'"'"' not found".
  # - It generates a shim setup.py, for handling setup.cfg-only projects.
  import os, sys, tokenize
  
  try:
      import setuptools
  except ImportError as error:
      print(
          "ERROR: Can not execute `setup.py` since setuptools is not available in "
          "the build environment.",
          file=sys.stderr,
      )
      sys.exit(1)
  
  __file__ = %r
  sys.argv[0] = __file__
  
  if os.path.exists(__file__):
      filename = __file__
      with tokenize.open(__file__) as f:
          setup_py_code = f.read()
  else:
      filename = "<auto-generated setuptools caller>"
      setup_py_code = "from setuptools import setup; setup()"
  
  exec(compile(setup_py_code, filename, "exec"))
  '"'"''"'"''"'"' % ('"'"'/tmp/pip-install-q2xkxl0n/onnx-simplifier_795fe5484b37426fb7feb48837b76bd9/setup.py'"'"',), "<pip-setuptools-caller>", "exec"))' egg_info --egg-base /tmp/pip-pip-egg-info-nazgrqy3
  cwd: /tmp/pip-install-q2xkxl0n/onnx-simplifier_795fe5484b37426fb7feb48837b76bd9/
  Preparing metadata (setup.py) ... error
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing pip3 install -v -e . from the repository root and read the onnx-simplifier metadata failure. Inspect the dependency's setup.py, especially the check for the cmake executable. Done means the documented YOLOX installation completes without the reported metadata-generation error.

Written by the indexing model from the issue text.

Assessment

Tech stack
cmake, python
Domain
build-system
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.