nerfstudio-project / nerfstudio

A collaboration friendly studio for NeRFs
https://docs.nerf.studio
Apache License 2.0
9.52k stars 1.3k forks source link

av 9.2 installation issue #2409

Open lilbaph opened 1 year ago

lilbaph commented 1 year ago

`Collecting av==9.2.0 (from nerfstudio) Using cached av-9.2.0.tar.gz (2.4 MB) Installing build dependencies ... done Getting requirements to build wheel ... error error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully. │ exit code: 1 ╰─> [70 lines of output] Compiling av\buffer.pyx because it changed. [1/1] Cythonizing av\buffer.pyx Compiling av\bytesource.pyx because it changed. [1/1] Cythonizing av\bytesource.pyx Compiling av\descriptor.pyx because it changed. [1/1] Cythonizing av\descriptor.pyx Compiling av\dictionary.pyx because it changed. [1/1] Cythonizing av\dictionary.pyx Compiling av\enum.pyx because it changed. [1/1] Cythonizing av\enum.pyx Compiling av\error.pyx because it changed. [1/1] Cythonizing av\error.pyx Compiling av\format.pyx because it changed. [1/1] Cythonizing av\format.pyx Compiling av\frame.pyx because it changed. [1/1] Cythonizing av\frame.pyx

  Error compiling Cython file:
  ------------------------------------------------------------
  ...
  cdef const char *log_context_name(void *ptr) nogil:
      cdef log_context *obj = <log_context*>ptr
      return obj.name

  cdef lib.AVClass log_class
  log_class.item_name = log_context_name
                        ^
  ------------------------------------------------------------

  av\logging.pyx:216:22: Cannot assign type 'const char *(void *) except? NULL nogil' to 'const char *(*)(void *) noexcept nogil'. Exception values are incompatible. Suggest adding 'noexcept' to type 'const char *(void *) except? NULL nogil'.

  Error compiling Cython file:
  ------------------------------------------------------------
  ...

  # Start the magic!
  # We allow the user to fully disable the logging system as it will not play
  # nicely with subinterpreters due to FFmpeg-created threads.
  if os.environ.get('PYAV_LOGGING') != 'off':
      lib.av_log_set_callback(log_callback)
                              ^
  ------------------------------------------------------------

  av\logging.pyx:351:28: Cannot assign type 'void (void *, int, const char *, va_list) except * nogil' to 'av_log_callback'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (void *, int, const char *, va_list) except * nogil'.
  Compiling av\logging.pyx because it changed.
  [1/1] Cythonizing av\logging.pyx
  Traceback (most recent call last):
    File "E:\soft\conda\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 353, in <module>
      main()
    File "E:\soft\conda\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 335, in main
      json_out['return_val'] = hook(**hook_input['kwargs'])
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "E:\soft\conda\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 118, in get_requires_for_build_wheel
      return hook(config_settings)
             ^^^^^^^^^^^^^^^^^^^^^
    File "C:\Users\Kozi\AppData\Local\Temp\pip-build-env-2m63fqv_\overlay\Lib\site-packages\setuptools\build_meta.py", line 355, in get_requires_for_build_wheel
      return self._get_build_requires(config_settings, requirements=['wheel'])
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "C:\Users\Kozi\AppData\Local\Temp\pip-build-env-2m63fqv_\overlay\Lib\site-packages\setuptools\build_meta.py", line 325, in _get_build_requires
      self.run_setup()
    File "C:\Users\Kozi\AppData\Local\Temp\pip-build-env-2m63fqv_\overlay\Lib\site-packages\setuptools\build_meta.py", line 507, in run_setup
      super(_BuildMetaLegacyBackend, self).run_setup(setup_script=setup_script)
    File "C:\Users\Kozi\AppData\Local\Temp\pip-build-env-2m63fqv_\overlay\Lib\site-packages\setuptools\build_meta.py", line 341, in run_setup
      exec(code, locals())
    File "<string>", line 157, in <module>
    File "C:\Users\Kozi\AppData\Local\Temp\pip-build-env-2m63fqv_\overlay\Lib\site-packages\Cython\Build\Dependencies.py", line 1134, in cythonize
      cythonize_one(*args)
    File "C:\Users\Kozi\AppData\Local\Temp\pip-build-env-2m63fqv_\overlay\Lib\site-packages\Cython\Build\Dependencies.py", line 1301, in cythonize_one
      raise CompileError(None, pyx_file)
  Cython.Compiler.Errors.CompileError: av\logging.pyx
  [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip. error: subprocess-exited-with-error

× Getting requirements to build wheel 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.`

aruiplex commented 1 year ago

Facing the same issue, I found in here. Ubuntu 2204 and install the NeRFStudio by pip.

EdgarMaucourant commented 1 year ago

Note this error commes from cypthon 3 you can solve it by using the workaround in that comment: https://github.com/PyAV-Org/PyAV/issues/1140#issuecomment-1642460904 If you are on Windows and use Powershell, instead of PIP_CONSTRAINT=c.txt in front of your pip install, do $env:PIP_CONSTRAINT='c.txt.' then press enter (note that there is not space and the file name is between quotes)

Also for me the issue arose because I used python 3.11. When I used python 3.9 the error was solve. In any case using 3.11 won't work to install nerfstudio as Open3D is not yet available for python 3.11so stick to earlier versions.