Skip to content

Build errors with python 3.15 #41

Open

Description

@cmarmo

Dear maintainers,
python 3.15 is out and it looks like something is going wrong with the tutor with it.
I'm trying to install the tutor in a mamba environment with python 3.15 (the first time I forgot to pin the python version that's why I discovered the issue).
Both

pip install jupyter_ai_tutor[server]

and

pip install -e .[server]

from the current main version, throw

Details
Building wheels for collected packages: fastuuid, ormsgpack
  Building wheel for fastuuid (pyproject.toml) ... error
  error: subprocess-exited-with-error
  
  × Building wheel for fastuuid (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [88 lines of output]
      Python reports SOABI: cpython-315-x86_64-linux-gnu
      Computed rustc target triple: x86_64-unknown-linux-gnu
      Installation directory: /home/marmo/.cache/puccinialin
      Rustup already downloaded
      Installing rust to /home/marmo/.cache/puccinialin/rustup
      warn: it looks like you have an existing rustup settings file at:
      warn: /home/marmo/.cache/puccinialin/rustup/settings.toml
      info: profile set to minimal
      info: setting default host tuple to x86_64-unknown-linux-gnu
      warn: Updating existing toolchain, profile choice will be ignored
      info: syncing channel updates for stable-x86_64-unknown-linux-gnu
      info: default toolchain set to stable-x86_64-unknown-linux-gnu
      Checking if cargo is installed
      cargo 1.99.0 (5f94df478 2026-08-27)
      Rust not found, installing into a temporary directory
      Running `maturin pep517 build-wheel -i /home/marmo/miniforge3/envs/jupyter-aristote-315/bin/python3.15 --compatibility off`
      📦 Including license file `LICENSE`
      🐍 Found CPython 3.15 at /home/marmo/miniforge3/envs/jupyter-aristote-315/bin/python3.15
      🔗 Found pyo3 bindings
         Compiling target-lexicon v0.13.3
         Compiling libc v0.2.177
         Compiling version_check v0.9.5
         Compiling typenum v1.19.0
         Compiling proc-macro2 v1.0.101
         Compiling cfg-if v1.0.4
         Compiling quote v1.0.41
         Compiling unicode-ident v1.0.19
         Compiling zerocopy v0.8.27
         Compiling autocfg v1.5.0
         Compiling heck v0.5.0
         Compiling getrandom v0.3.4
         Compiling bytemuck v1.24.0
         Compiling once_cell v1.21.3
         Compiling indoc v2.0.6
         Compiling sha1_smol v1.0.1
         Compiling unindent v0.2.4
         Compiling generic-array v0.14.9
         Compiling atomic v0.6.1
         Compiling memoffset v0.9.1
         Compiling pyo3-build-config v0.26.0
         Compiling syn v2.0.107
         Compiling getrandom v0.2.16
         Compiling rand_core v0.6.4
         Compiling crypto-common v0.1.6
         Compiling block-buffer v0.10.4
         Compiling digest v0.10.7
         Compiling md-5 v0.10.6
         Compiling uuid v1.18.1
         Compiling pyo3-macros-backend v0.26.0
         Compiling pyo3-ffi v0.26.0
         Compiling pyo3 v0.26.0
      error: failed to run custom build command for `pyo3-ffi v0.26.0`
      
      Caused by:
        process didn't exit successfully: `/tmp/pip-install-f0cnl99p/fastuuid_103bc56f9ffe40acb7c9741008995de8/target/release/build/pyo3-ffi-ea03bcf61a7923e0/build-script-build` (exit status: 1)
        --- stdout
        cargo:rustc-check-cfg=cfg(Py_LIMITED_API)
        cargo:rustc-check-cfg=cfg(Py_GIL_DISABLED)
        cargo:rustc-check-cfg=cfg(PyPy)
        cargo:rustc-check-cfg=cfg(GraalPy)
        cargo:rustc-check-cfg=cfg(py_sys_config, values("Py_DEBUG", "Py_REF_DEBUG", "Py_TRACE_REFS", "COUNT_ALLOCS"))
        cargo:rustc-check-cfg=cfg(pyo3_disable_reference_pool)
        cargo:rustc-check-cfg=cfg(pyo3_leak_on_drop_without_reference_pool)
        cargo:rustc-check-cfg=cfg(Py_3_7)
        cargo:rustc-check-cfg=cfg(Py_3_8)
        cargo:rustc-check-cfg=cfg(Py_3_9)
        cargo:rustc-check-cfg=cfg(Py_3_10)
        cargo:rustc-check-cfg=cfg(Py_3_11)
        cargo:rustc-check-cfg=cfg(Py_3_12)
        cargo:rustc-check-cfg=cfg(Py_3_13)
        cargo:rustc-check-cfg=cfg(Py_3_14)
        cargo:rustc-check-cfg=cfg(Py_3_15)
        cargo:rerun-if-env-changed=PYO3_CROSS
        cargo:rerun-if-env-changed=PYO3_CROSS_LIB_DIR
        cargo:rerun-if-env-changed=PYO3_CROSS_PYTHON_VERSION
        cargo:rerun-if-env-changed=PYO3_CROSS_PYTHON_IMPLEMENTATION
        cargo:rerun-if-env-changed=PYO3_PRINT_CONFIG
        cargo:rerun-if-env-changed=PYO3_USE_ABI3_FORWARD_COMPATIBILITY
      
        --- stderr
        error: the configured Python interpreter version (3.15) is newer than PyO3's maximum supported version (3.14)
        = help: please check if an updated version of PyO3 is available. Current version: 0.26.0
        = help: set PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 to suppress this check and build anyway using the stable ABI
      warning: build failed, waiting for other jobs to finish...
      💥 maturin failed
        Caused by: Failed to build a native library through cargo
        Caused by: Cargo build finished with "exit status: 101": `env -u CARGO PYO3_BUILD_EXTENSION_MODULE="1" PYO3_ENVIRONMENT_SIGNATURE="cpython-3.15-64bit" PYO3_PYTHON="/home/marmo/miniforge3/envs/jupyter-aristote-315/bin/python3.15" PYTHON_SYS_EXECUTABLE="/home/marmo/miniforge3/envs/jupyter-aristote-315/bin/python3.15" "cargo" "rustc" "--profile" "release" "--message-format" "json-render-diagnostics" "--manifest-path" "/tmp/pip-install-f0cnl99p/fastuuid_103bc56f9ffe40acb7c9741008995de8/Cargo.toml" "--lib"`
      Error: command ['maturin', 'pep517', 'build-wheel', '-i', '/home/marmo/miniforge3/envs/jupyter-aristote-315/bin/python3.15', '--compatibility', 'off'] returned non-zero exit status 1
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for fastuuid
  Building wheel for ormsgpack (pyproject.toml) ... error
  error: subprocess-exited-with-error
  
  × Building wheel for ormsgpack (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [85 lines of output]
      Python reports SOABI: cpython-315-x86_64-linux-gnu
      Computed rustc target triple: x86_64-unknown-linux-gnu
      Installation directory: /home/marmo/.cache/puccinialin
      Rustup already downloaded
      Installing rust to /home/marmo/.cache/puccinialin/rustup
      warn: it looks like you have an existing rustup settings file at:
      warn: /home/marmo/.cache/puccinialin/rustup/settings.toml
      info: profile set to minimal
      info: setting default host tuple to x86_64-unknown-linux-gnu
      warn: Updating existing toolchain, profile choice will be ignored
      info: syncing channel updates for stable-x86_64-unknown-linux-gnu
      info: default toolchain set to stable-x86_64-unknown-linux-gnu
      Checking if cargo is installed
      cargo 1.99.0 (5f94df478 2026-08-27)
      Rust not found, installing into a temporary directory
      Running `maturin pep517 build-wheel -i /home/marmo/miniforge3/envs/jupyter-aristote-315/bin/python3.15 --compatibility off`
      📦 Including license file `LICENSE-APACHE`
      📦 Including license file `LICENSE-MIT`
      🍹 Building a mixed python/rust project
      🐍 Found CPython 3.15 at /home/marmo/miniforge3/envs/jupyter-aristote-315/bin/python3.15
      🔗 Found pyo3 bindings
         Compiling target-lexicon v0.13.4
         Compiling proc-macro2 v1.0.105
         Compiling autocfg v1.5.0
         Compiling unicode-ident v1.0.22
         Compiling quote v1.0.43
         Compiling zerocopy v0.8.33
         Compiling libc v0.2.180
         Compiling serde_core v1.0.228
         Compiling version_check v0.9.5
         Compiling once_cell v1.21.3
         Compiling cfg-if v1.0.4
         Compiling serde v1.0.228
         Compiling simdutf8 v0.1.5
         Compiling bytecount v0.6.9
         Compiling itoa v1.0.17
         Compiling smallvec v1.15.1
         Compiling ahash v0.8.12
         Compiling memoffset v0.9.1
         Compiling num-traits v0.2.19
         Compiling pyo3-build-config v0.27.2
         Compiling syn v2.0.114
         Compiling chrono v0.4.43
         Compiling pyo3-ffi v0.27.2
         Compiling pyo3 v0.27.2
         Compiling ormsgpack v1.12.2 (/tmp/pip-install-f0cnl99p/ormsgpack_a20e9538c02245ad9594e8059e2eaf44)
      error: failed to run custom build command for `pyo3-ffi v0.27.2`
      
      Caused by:
        process didn't exit successfully: `/tmp/pip-install-f0cnl99p/ormsgpack_a20e9538c02245ad9594e8059e2eaf44/target/release/build/pyo3-ffi-94ba248bebd23a2f/build-script-build` (exit status: 1)
        --- stdout
        cargo:rustc-check-cfg=cfg(Py_LIMITED_API)
        cargo:rustc-check-cfg=cfg(Py_GIL_DISABLED)
        cargo:rustc-check-cfg=cfg(PyPy)
        cargo:rustc-check-cfg=cfg(GraalPy)
        cargo:rustc-check-cfg=cfg(py_sys_config, values("Py_DEBUG", "Py_REF_DEBUG", "Py_TRACE_REFS", "COUNT_ALLOCS"))
        cargo:rustc-check-cfg=cfg(pyo3_disable_reference_pool)
        cargo:rustc-check-cfg=cfg(pyo3_leak_on_drop_without_reference_pool)
        cargo:rustc-check-cfg=cfg(Py_3_7)
        cargo:rustc-check-cfg=cfg(Py_3_8)
        cargo:rustc-check-cfg=cfg(Py_3_9)
        cargo:rustc-check-cfg=cfg(Py_3_10)
        cargo:rustc-check-cfg=cfg(Py_3_11)
        cargo:rustc-check-cfg=cfg(Py_3_12)
        cargo:rustc-check-cfg=cfg(Py_3_13)
        cargo:rustc-check-cfg=cfg(Py_3_14)
        cargo:rustc-check-cfg=cfg(Py_3_15)
        cargo:rerun-if-env-changed=PYO3_CROSS
        cargo:rerun-if-env-changed=PYO3_CROSS_LIB_DIR
        cargo:rerun-if-env-changed=PYO3_CROSS_PYTHON_VERSION
        cargo:rerun-if-env-changed=PYO3_CROSS_PYTHON_IMPLEMENTATION
        cargo:rerun-if-env-changed=PYO3_PRINT_CONFIG
        cargo:rerun-if-env-changed=PYO3_USE_ABI3_FORWARD_COMPATIBILITY
      
        --- stderr
        error: the configured Python version (3.15) is newer than PyO3's maximum supported version (3.14)
        = help: this package is being built with PyO3 version 0.27.2
        = help: check https://crates.io/crates/pyo3 for the latest PyO3 version available
        = help: updating this package to the latest version of PyO3 may provide compatibility with this Python version
        = help: set PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 to suppress this check and build anyway using the stable ABI
      warning: build failed, waiting for other jobs to finish...
      💥 maturin failed
        Caused by: Failed to build a native library through cargo
        Caused by: Cargo build finished with "exit status: 101": `env -u CARGO PYO3_BUILD_EXTENSION_MODULE="1" PYO3_ENVIRONMENT_SIGNATURE="cpython-3.15-64bit" PYO3_PYTHON="/home/marmo/miniforge3/envs/jupyter-aristote-315/bin/python3.15" PYTHON_SYS_EXECUTABLE="/home/marmo/miniforge3/envs/jupyter-aristote-315/bin/python3.15" "cargo" "rustc" "--profile" "release" "--message-format" "json-render-diagnostics" "--manifest-path" "/tmp/pip-install-f0cnl99p/ormsgpack_a20e9538c02245ad9594e8059e2eaf44/Cargo.toml" "--lib"`
      Error: command ['maturin', 'pep517', 'build-wheel', '-i', '/home/marmo/miniforge3/envs/jupyter-aristote-315/bin/python3.15', '--compatibility', 'off'] returned non-zero exit status 1
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for ormsgpack
Failed to build fastuuid ormsgpack
error: failed-wheel-build-for-install

× Failed to build installable wheels for some pyproject.toml based projects
╰─> fastuuid, ormsgpack

Activity

  1. brichet commented on Oct 13, 2026

    @brichet
    Member

    Thanks @cmarmo for opening this issue.
    It seems that fastuuid and ormsgpack are not ready yet for Python 3.15, we should stick with Python 3.14 for now.

    Let's keep this issue opened to track Python 3.15 compatibility.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions