镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

Python bindings: segfault under CPython 3.15 (openstudio 3.11.0 py3-none-manylinux wheel) — request cp315 wheels #5668

Open

Description

@anchapin

Summary

The openstudio PyPI package installs under CPython 3.15.0, but the extension module segfaults on first use. In our CI, every pytest worker that touches the bindings died with Fatal Python error: Segmentation fault at the first import/use of the module. The same wheel and the same test suite run cleanly under CPython 3.12.

Environment

  • openstudio 3.11.0 (openstudio-3.11.0-py3-none-manylinux1_x86_64.whl) from PyPI
  • CPython 3.15.0, linux x86_64, GitHub Actions hosted runner (ubuntu-latest)
  • Observed 2026-10-14, reproduced deterministically across every xdist worker exercising the bindings (OpenStudio gbXML round-trip and per-space tests)

What we observed

  • pip install openstudio resolves and installs 3.11.0 under 3.15 without complaints (the wheel is tagged py3-none-manylinux1, so no ABI guard at install time).
  • First use of the binding segfaults the interpreter.
  • Downgrading the interpreter to 3.12 with the identical wheel and code: all green.

Suspected minimal repro (we have not isolated it further than "any binding use"):

python3.15 -m venv v
v/bin/pip install openstudio
v/bin/python -c "import openstudio; print(openstudio.Version.getString())"

Request

  • Ideally: publish wheels compatible with CPython 3.15 in the next release.
  • Or, if 3.15 support is intentionally not a target yet: document the supported CPython range prominently (PyPI long description / README), since the py3-none-manylinux tag lets pip happily install a build that then segfaults.

Side note: the wiki compatibility matrix (last edited June 2025) currently ends at SDK 3.10.0 with cp313 as the newest Windows ABI tag, and doesn't list 3.11.0 yet, so downstream users have no up-to-date reference for what 3.11.0 supports.

Context

We pinned the OpenStudio job of our CI below 3.15 for now (with a Renovate rule naming this evidence), but it would be good to converge back on one current interpreter for all our jobs once 3.15-compatible wheels exist.

Activity

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