#jetson xavier nx上安装python依赖包av时报错:Cython.Compiler.Errors.CompileError: av/logging.pyx
安装命令是:pip install av,具体报错如下:
ERROR: Command errored out with exit status 1:
command: /usr/bin/python3 /home/nvidia/.local/lib/python3.6/site-packages/pip/_vendor/pep517/in_process/_in_process.py build_wheel /tmp/tmpoc2ad4rd
cwd: /tmp/pip-install-86e13fah/av_c2a66e23fe1649c7a13e21b53c3541ce
Complete output (150 lines):
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-aarch64-3.6
creating build/lib.linux-aarch64-3.6/av
copying av/about.py -> build/lib.linux-aarch64-3.6/av
copying av/deprecation.py -> build/lib.linux-aarch64-3.6/av
copying av/__init__.py -> build/lib.linux-aarch64-3.6/av
copying av/__main__.py -> build/lib.linux-aarch64-3.6/av
copying av/datasets.py -> build/lib.linux-aarch64-3.6/av
creating build/lib.linux-aarch64-3.6/av/video
copying av/video/__init__.py -> build/lib.linux-aarch64-3.6/av/video
creating build/lib.linux-aarch64-3.6/av/subtitles
copying av/subtitles/__init__.py -> build/lib.linux-aarch64-3.6/av/subtitles
creating build/lib.linux-aarch64-3.6/av/data
copying av/data/__init__.py -> build/lib.linux-aarch64-3.6/av/data
creating build/lib.linux-aarch64-3.6/av/filter
copying av/filter/__init__.py -> build/lib.linux-aarch64-3.6/av/filter
creating build/lib.linux-aarch64-3.6/av/sidedata
copying av/sidedata/__init__.py -> build/lib.linux-aarch64-3.6/av/sidedata
creating build/lib.linux-aarch64-3.6/av/codec
copying av/codec/__init__.py -> build/lib.linux-aarch64-3.6/av/codec
creating build/lib.linux-aarch64-3.6/av/container
copying av/container/__init__.py -> build/lib.linux-aarch64-3.6/av/container
creating build/lib.linux-aarch64-3.6/av/audio
copying av/audio/__init__.py -> build/lib.linux-aarch64-3.6/av/audio
running build_ext
running config
PyAV: 9.0.1
Python: 3.6.9 (default, Mar 10 2023, 16:46:00)
[GCC 8.4.0]
platform: Linux-4.9.253-tegra-aarch64-with-Ubuntu-18.04-bionic
extension_extra:
include_dirs: ['include', '/usr/include/aarch64-linux-gnu']
libraries: ['avformat', 'avcodec', 'avdevice', 'avutil', 'avfilter', 'swscale', 'swresample']
library_dirs: []
define_macros: []
runtime_library_dirs: []
running cythonize
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/buffer.pyx because it changed.
[1/1] Cythonizing av/buffer.pyx
Compiling av/option.pyx because it changed.
[1/1] Cythonizing av/option.pyx
Compiling av/_core.pyx because it changed.
[1/1] Cythonizing av/_core.pyx
Compiling av/descriptor.pyx because it changed.
[1/1] Cythonizing av/descriptor.pyx
Compiling av/utils.pyx because it changed.
[1/1] Cythonizing av/utils.pyx
Compiling av/dictionary.pyx because it changed.
[1/1] Cythonizing av/dictionary.pyx
Compiling av/bytesource.pyx because it changed.
[1/1] Cythonizing av/bytesource.pyx
Compiling av/stream.pyx because it changed.
[1/1] Cythonizing av/stream.pyx
Compiling av/packet.pyx because it changed.
[1/1] Cythonizing av/packet.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
performance hint: av/logging.pyx:242:5: Exception check on 'log_callback' will always require the GIL to be acquired.
Possible solutions:
1. Declare 'log_callback' as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
2. Use an 'int' return type on 'log_callback' to allow an error code to be returned.
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:226:22: Cannot assign type 'const char *(void *) except? NULL nogil' to 'const char *(*)(void *) noexcept nogil'. Exception values are incompatible. Suggest adding 'noexcept' to the type of 'log_context_name'.
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:361:28: Cannot assign type 'void (void *, int, const char *, va_list) except * nogil' to 'av_log_callback' (alias of 'void (*)(void *, int, const char *, va_list) noexcept nogil'). Exception values are incompatible. Suggest adding 'noexcept' to the type of 'log_callback'.
Compiling av/logging.pyx because it changed.
[1/1] Cythonizing av/logging.pyx
Traceback (most recent call last):
File "/home/nvidia/.local/lib/python3.6/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 363, in <module>
main()
File "/home/nvidia/.local/lib/python3.6/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 345, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
File "/home/nvidia/.local/lib/python3.6/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 262, in build_wheel
metadata_directory)
File "/tmp/pip-build-env-2yzij6j4/overlay/lib/python3.6/site-packages/setuptools/build_meta.py", line 231, in build_wheel
wheel_directory, config_settings)
File "/tmp/pip-build-env-2yzij6j4/overlay/lib/python3.6/site-packages/setuptools/build_meta.py", line 215, in _build_with_temp_dir
self.run_setup()
File "/tmp/pip-build-env-2yzij6j4/overlay/lib/python3.6/site-packages/setuptools/build_meta.py", line 268, in run_setup
self).run_setup(setup_script=setup_script)
File "/tmp/pip-build-env-2yzij6j4/overlay/lib/python3.6/site-packages/setuptools/build_meta.py", line 158, in run_setup
exec(compile(code, __file__, 'exec'), locals())
File "setup.py", line 348, in <module>
"Topic :: Multimedia :: Video :: Conversion",
File "/tmp/pip-build-env-2yzij6j4/overlay/lib/python3.6/site-packages/setuptools/__init__.py", line 153, in setup
return distutils.core.setup(**attrs)
File "/usr/lib/python3.6/distutils/core.py", line 148, in setup
dist.run_commands()
File "/usr/lib/python3.6/distutils/dist.py", line 955, in run_commands
self.run_command(cmd)
File "/usr/lib/python3.6/distutils/dist.py", line 974, in run_command
cmd_obj.run()
File "/tmp/pip-build-env-2yzij6j4/overlay/lib/python3.6/site-packages/wheel/bdist_wheel.py", line 299, in run
self.run_command('build')
File "/usr/lib/python3.6/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/usr/lib/python3.6/distutils/dist.py", line 974, in run_command
cmd_obj.run()
File "/usr/lib/python3.6/distutils/command/build.py", line 135, in run
self.run_command(cmd_name)
File "/usr/lib/python3.6/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/usr/lib/python3.6/distutils/dist.py", line 974, in run_command
cmd_obj.run()
File "setup.py", line 304, in run
self.run_command("cythonize")
File "/usr/lib/python3.6/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/usr/lib/python3.6/distutils/dist.py", line 974, in run_command
cmd_obj.run()
File "setup.py", line 265, in run
include_path=ext.include_dirs,
File "/tmp/pip-build-env-2yzij6j4/overlay/lib/python3.6/site-packages/Cython/Build/Dependencies.py", line 1154, in cythonize
cythonize_one(*args)
File "/tmp/pip-build-env-2yzij6j4/overlay/lib/python3.6/site-packages/Cython/Build/Dependencies.py", line 1321, in cythonize_one
raise CompileError(None, pyx_file)
Cython.Compiler.Errors.CompileError: av/logging.pyx
----------------------------------------
ERROR: Failed building wheel for av
Failed to build av
ERROR: Could not build wheels for av, which is required to install pyproject.toml-based projects