Skip to content

Please support Python 3.13 on MacOS #1558

@cdeil

Description

@cdeil

Search before asking

  • I have searched the Inference issues and found no similar bug report.

Bug

I tried to install inference with Python 3.13 on MacOS and got a build error for the av dependency.

The errors is from trying to build av v12.3.0 but that's old, now there's https://pypi.org/project/av/15.1.0/

Any chance to modernize the inference dependency constraints to make this work?

Environment

  • Inference: v0.55.0
  • OS: MacOS
  • Python: 3.13

Minimal Reproducible Example

To reproduce create this pyproject.toml:

[project]
name = "rf1"
version = "0.1.0"
requires-python = ">=3.13"
dependencies = ["inference>=0.55.0"]

Then try to install it:

% uv sync
Resolved 143 packages in 92ms
  × Failed to build `av==12.3.0`
  ├─▶ The build backend returned an error
  ╰─▶ Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)

      [stdout]
      running bdist_wheel
      running build
      running build_py
      copying av/deprecation.py -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/datasets.py -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/__init__.py -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/about.py -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/__main__.py -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/video/__init__.py -> build/lib.macosx-10.13-universal2-cpython-313/av/video
      copying av/codec/__init__.py -> build/lib.macosx-10.13-universal2-cpython-313/av/codec
      copying av/container/__init__.py -> build/lib.macosx-10.13-universal2-cpython-313/av/container
      copying av/audio/__init__.py -> build/lib.macosx-10.13-universal2-cpython-313/av/audio
      copying av/subtitles/__init__.py -> build/lib.macosx-10.13-universal2-cpython-313/av/subtitles
      copying av/filter/__init__.py -> build/lib.macosx-10.13-universal2-cpython-313/av/filter
      copying av/sidedata/__init__.py -> build/lib.macosx-10.13-universal2-cpython-313/av/sidedata
      copying av/data/__init__.py -> build/lib.macosx-10.13-universal2-cpython-313/av/data
      copying av/packet.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/buffer.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/error.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/_core.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/bitstream.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/format.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/logging.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/descriptor.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/frame.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/plane.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/dictionary.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/stream.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/option.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/enum.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/py.typed -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/utils.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/frame.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/descriptor.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/logging.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/format.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/bitstream.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/__init__.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/error.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/buffer.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/packet.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/bytesource.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/enum.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/option.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/stream.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/dictionary.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/plane.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av
      copying av/video/__init__.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av/video
      copying av/video/reformatter.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av/video
      copying av/video/format.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av/video
      copying av/video/frame.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av/video
      copying av/video/plane.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av/video
      copying av/video/stream.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av/video
      copying av/video/codeccontext.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av/video
      copying av/video/frame.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/video
      copying av/video/reformatter.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/video
      copying av/video/format.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/video
      copying av/video/__init__.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/video
      copying av/video/codeccontext.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/video
      copying av/video/stream.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/video
      copying av/video/plane.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/video
      copying av/codec/context.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av/codec
      copying av/codec/codec.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av/codec
      copying av/codec/__init__.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/codec
      copying av/codec/context.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/codec
      copying av/codec/codec.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/codec
      copying av/container/output.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av/container
      copying av/container/__init__.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av/container
      copying av/container/core.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av/container
      copying av/container/input.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av/container
      copying av/container/streams.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av/container
      copying av/container/input.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/container
      copying av/container/core.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/container
      copying av/container/__init__.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/container
      copying av/container/pyio.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/container
      copying av/container/output.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/container
      copying av/container/streams.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/container
      copying av/audio/layout.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av/audio
      copying av/audio/format.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av/audio
      copying av/audio/fifo.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av/audio
      copying av/audio/frame.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av/audio
      copying av/audio/plane.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av/audio
      copying av/audio/resampler.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av/audio
      copying av/audio/stream.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av/audio
      copying av/audio/codeccontext.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av/audio
      copying av/audio/frame.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/audio
      copying av/audio/fifo.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/audio
      copying av/audio/format.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/audio
      copying av/audio/layout.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/audio
      copying av/audio/__init__.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/audio
      copying av/audio/codeccontext.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/audio
      copying av/audio/stream.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/audio
      copying av/audio/resampler.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/audio
      copying av/audio/plane.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/audio
      copying av/subtitles/subtitle.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av/subtitles
      copying av/subtitles/stream.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av/subtitles
      copying av/subtitles/codeccontext.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av/subtitles
      copying av/subtitles/__init__.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/subtitles
      copying av/subtitles/codeccontext.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/subtitles
      copying av/subtitles/stream.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/subtitles
      copying av/subtitles/subtitle.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/subtitles
      copying av/filter/filter.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av/filter
      copying av/filter/context.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av/filter
      copying av/filter/__init__.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av/filter
      copying av/filter/graph.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av/filter
      copying av/filter/link.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av/filter
      copying av/filter/pad.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av/filter
      copying av/filter/__init__.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/filter
      copying av/filter/graph.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/filter
      copying av/filter/context.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/filter
      copying av/filter/filter.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/filter
      copying av/filter/pad.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/filter
      copying av/filter/link.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/filter
      copying av/sidedata/motionvectors.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av/sidedata
      copying av/sidedata/sidedata.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av/sidedata
      copying av/sidedata/__init__.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/sidedata
      copying av/sidedata/motionvectors.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/sidedata
      copying av/sidedata/sidedata.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/sidedata
      copying av/data/stream.pyi -> build/lib.macosx-10.13-universal2-cpython-313/av/data
      copying av/data/__init__.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/data
      copying av/data/stream.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/data
      copying include/libav.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/include
      copying include/libavfilter/buffersink.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/include/libavfilter
      copying include/libavfilter/avfiltergraph.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/include/libavfilter
      copying include/libavfilter/avfilter.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/include/libavfilter
      copying include/libavfilter/buffersrc.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/include/libavfilter
      copying include/libavutil/frame.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/include/libavutil
      copying include/libavutil/avutil.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/include/libavutil
      copying include/libavutil/error.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/include/libavutil
      copying include/libavutil/channel_layout.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/include/libavutil
      copying include/libavutil/dict.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/include/libavutil
      copying include/libavutil/samplefmt.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/include/libavutil
      copying include/libavutil/motion_vector.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/include/libavutil
      copying include/libavdevice/avdevice.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/include/libavdevice
      copying include/libavformat/avformat.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/include/libavformat
      copying include/libswscale/swscale.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/include/libswscale
      copying include/libavcodec/avcodec.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/include/libavcodec
      copying include/libavcodec/bsf.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/include/libavcodec
      copying include/libswresample/swresample.pxd -> build/lib.macosx-10.13-universal2-cpython-313/av/include/libswresample
      running build_ext
      building 'av.stream' extension
      clang -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -arch arm64 -arch x86_64 -I/opt/homebrew/Cellar/ffmpeg/8.0_1/include
      -I/Users/cdeil/.cache/uv/builds-v0/.tmpHvyxzr/include -I/Library/Frameworks/Python.framework/Versions/3.13/include/python3.13 -c src/av/stream.c -o build/temp.macosx-10.13-universal2-cpython-313/src/av/stream.o

      [stderr]
      /Users/cdeil/.cache/uv/builds-v0/.tmpHvyxzr/lib/python3.13/site-packages/setuptools/_distutils/dist.py:289: UserWarning: Unknown distribution option: 'test_suite'
        warnings.warn(msg)
      /Users/cdeil/.cache/uv/builds-v0/.tmpHvyxzr/lib/python3.13/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated.
      !!

              ********************************************************************************
              Please consider removing the following classifiers in favor of a SPDX license expression:

              License :: OSI Approved :: BSD License

              See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
              ********************************************************************************

      !!
        self._finalize_license_expression()
      src/av/stream.c:4618:31: error: no member named 'nb_side_data' in 'struct AVStream'
       4618 |   __pyx_t_1 = __pyx_v_stream->nb_side_data;
            |               ~~~~~~~~~~~~~~  ^
      src/av/stream.c:4652:35: error: no member named 'side_data' in 'struct AVStream'
       4652 |     __pyx_t_5 = ((__pyx_v_stream->side_data[__pyx_v_i]).type == AV_PKT_DATA_DISPLAYMATRIX);
            |                   ~~~~~~~~~~~~~~  ^
      src/av/stream.c:4662:97: error: no member named 'side_data' in 'struct AVStream'
       4662 |       __pyx_t_2 = PyFloat_FromDouble(av_display_rotation_get(((int32_t const *)(__pyx_v_stream->side_data[__pyx_v_i]).data))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 141, __pyx_L1_error)
            |                                                                                 ~~~~~~~~~~~~~~  ^
      3 errors generated.
      error: command '/usr/bin/clang' failed with exit code 1

      hint: This usually indicates a problem with the package or the build environment.
  help: `av` (v12.3.0) was included because `rf1` (v0.1.0) depends on `inference` (v0.55.0) which depends on `aiortc` (v1.9.0) which depends on `av`

Additional

No response

Are you willing to submit a PR?

  • Yes I'd like to help by submitting a PR!

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions