GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Add support for Python 3.14 · Issue #2610 · pythonnet/pythonnet

Add support for Python 3.14 #2610

New issue
Copy link
New issue
Copy link
Closed
Task
Closed
Add support for Python 3.14#2610
Task
Copy link
Assignees
filmor
Milestone
3.1.0

Description

@freakboy3742
freakboy3742
opened on Aug 5, 2025
Issue body actions

Python.net's requires-python places a hard upper pin on <3.14.

Python 3.14 is nearing release; RC1 is out, which indicates that ABI stability now exists.

It would be desirable for Python.net to support the upcoming Python release.

Reacted by EliaOndacs, g/christensen, Stef Smeets, Jeff Chou, ghaarsma, Michael Wollensack, Mattias Josefsson, mashamellow, baseplate-admin, DareDevilDenis and 22 more

Activity

Next
  1. EliaOndacs commented on Oct 7, 2025

    @EliaOndacs
    EliaOndacs
    on Oct 7, 2025
    More actions

    hey, hello, as of right now i'm writing this python 3.14 released, and i unexpectedly ran into this problem of pythonnet not supporting python 3.14, so i'm running into this problem too, (runtime error while trying to run a python script that is using pythonnet), i wonder how long it takes to update it for python 3.14 considering its release-candidates and pre-releases have been out for a while

    Reacted by g/christensen, mashamellow, IB_U_Z_Z_A_R_Dl and Houbein
  2. filmor commented on Oct 7, 2025

    @filmor
    filmor
    on Oct 7, 2025
    Member
    More actions

    Any help is appreciated. There is a branch you can test (#2611), but our CI is currently thoroughly broken and I haven't found the time to fix it, yet.

  3. freakboy3742 commented on Oct 7, 2025

    @freakboy3742
    freakboy3742
    on Oct 7, 2025
    Author
    More actions

    @filmor I'm unfortunately not in a position to help directly - but if this is a situation that can be fixed by throwing money at someone who does have the skills to investigate the problem, I might be able to help. If that's the case, let me know.

  4. filmor
    marked Pythonnet does install on the new Python 3.14.0 yet #2626 as a duplicate of this issue on Oct 8, 2025
  5. NasirNS45 commented on Oct 29, 2025

    @NasirNS45
    NasirNS45
    on Oct 29, 2025
    More actions

    Any update on this? Ran into the same issue while installing awsebcli

  6. filmor commented on Oct 30, 2025

    @filmor
    filmor
    on Oct 30, 2025
    Member
    More actions

    Work is happening in #2611. It works in general, but there are at least two crashes that I (or someone who wants to dive in) have to investigate.

  7. andre-romano commented on Nov 17, 2025

    @andre-romano
    andre-romano
    on Nov 17, 2025 · Hidden as off-topic
    show commentMore actions
  8. filmor commented on Nov 17, 2025

    @filmor
    filmor
    on Nov 17, 2025 · Hidden as off-topic
    show commentMore actions
  9. filmor
    marked Add support for Python 3.14.2 #2677 as a duplicate of this issue on Jan 7, 2026
  10. Houbein commented on Feb 23, 2026

    @Houbein
    Houbein
    on Feb 23, 2026 · Hidden as off-topic
    show commentMore actions
  11. filmor
    self-assigned this
    on Feb 25, 2026
  12. filmor
    added this to the 3.1.0 milestone on Feb 25, 2026
  13. filmor
    added the
    Task
    issue type on Feb 25, 2026
  14. filmor
    pinned this issue on Feb 25, 2026
  15. filmor commented on Feb 25, 2026

    @filmor
    filmor
    on Feb 25, 2026
    Member
    More actions

    3.1.0rc0 is out now with the Python 3.14 support merged. Please test and report back. I still have not found time to fix the CI completely, which is a prerequisite for me to cut this as a full release.

    Reacted by porly1985, Victor, Russell Keith-Magee and PythonPan
    Reacted by Stef Smeets
  16. 15 remaining items

  17. MischaPanch commented on Apr 7, 2026

    @MischaPanch
    MischaPanch
    on Apr 7, 2026
    More actions

    I guess I will have to be patient and somehow circumvent the missing release for now, thanks for the answer

  18. alexchandel commented on Apr 7, 2026

    @alexchandel
    alexchandel
    on Apr 7, 2026
    More actions

    @MischaPanch You can take a crack at fixing the two failing tests, if you have time.

    The failing unit test blocking 3.14 is test_getting_overloaded_method_binding_does_not_leak_memory, here .

        def test_getting_overloaded_method_binding_does_not_leak_memory():
            """Test that managed object is freed after calling overloaded method. Issue #691"""
        
            from PlainOldNamespace import PlainOldClass
        
            import psutil, os, gc, clr
        
            process = psutil.Process(os.getpid())
            processBytesBeforeCall = process.memory_info().rss
            print("\n\nMemory consumption (bytes) at start of test: " + str(processBytesBeforeCall))
        
            iterations = 500
            for i in range(iterations):
                PlainOldClass().OverloadedMethod.Overloads[int]
        
            gc.collect()
            System.GC.Collect()
        
            processBytesAfterCall = process.memory_info().rss
            print("Memory consumption (bytes) at end of test: " + str(processBytesAfterCall))
            processBytesDelta = processBytesAfterCall - processBytesBeforeCall
            print("Memory delta: " + str(processBytesDelta))
        
            bytesAllocatedPerIteration = pow(2, 20)  # 1MB
            bytesLeakedPerIteration = processBytesDelta / iterations
        
            # Allow 50% threshold - this shows the original issue is fixed, which leaks the full allocated bytes per iteration
            failThresholdBytesLeakedPerIteration = bytesAllocatedPerIteration / 2
        
    >       assert bytesLeakedPerIteration < failThresholdBytesLeakedPerIteration
    E       assert 903208.96 < 524288.0
    
    tests\test_method.py:1015: AssertionError
    ---------------------------- Captured stdout call -----------------------------
    
    
    Memory consumption (bytes) at start of test: 163160064
    Memory consumption (bytes) at end of test: 614764544
    Memory delta: 451604480
    =========================== short test summary info ===========================
    FAILED tests/test_method.py::test_getting_overloaded_method_binding_does_not_leak_memory - assert 903208.96 < 524288.0
    ============= 1 failed, 465 passed, 5 skipped, 1 xpassed in 5.02s =============

    Additionally, the mono tests fail with an internal error here,

      Determining projects to restore...
      All projects are up-to-date for restore.
      Python.Runtime -> /Users/runner/work/pythonnet/pythonnet/pythonnet/runtime/Python.Runtime.dll
      Python.Test -> /Users/runner/work/pythonnet/pythonnet/src/testing/bin/Debug/netstandard2.0/Python.Test.dll
      Python.Test -> /var/folders/t5/f77_gwnj6p95qxy9py3fckx00000gn/T/tmpe58flof0/
    INTERNALERROR> Traceback (most recent call last):
    INTERNALERROR>   File "/Users/runner/work/pythonnet/pythonnet/pythonnet/__init__.py", line 75, in _create_runtime_from_spec
    INTERNALERROR>     return clr_loader.get_mono(**params)
    INTERNALERROR>            ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
    INTERNALERROR>   File "/Users/runner/work/pythonnet/pythonnet/.venv/lib/python3.14/site-packages/clr_loader/__init__.py", line 78, in get_mono
    INTERNALERROR>     impl = Mono(
    INTERNALERROR>         # domain=domain,
    INTERNALERROR>     ...<7 lines>...
    INTERNALERROR>         set_signal_chaining=set_signal_chaining,
    INTERNALERROR>     )
    INTERNALERROR>   File "/Users/runner/work/pythonnet/pythonnet/.venv/lib/python3.14/site-packages/clr_loader/mono.py", line 36, in __init__
    INTERNALERROR>     self._version: str = initialize(
    INTERNALERROR>                          ~~~~~~~~~~^
    INTERNALERROR>         config_file=optional_path_as_string(config_file),
    INTERNALERROR>         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    INTERNALERROR>     ...<8 lines>...
    INTERNALERROR>         trace_level=trace_level,
    INTERNALERROR>         ^^^^^^^^^^^^^^^^^^^^^^^^
    INTERNALERROR>     )
    INTERNALERROR>     ^
    INTERNALERROR>   File "/Users/runner/work/pythonnet/pythonnet/.venv/lib/python3.14/site-packages/clr_loader/mono.py", line 146, in initialize
    INTERNALERROR>     _MONO = load_mono(libmono)
    INTERNALERROR>   File "/Users/runner/work/pythonnet/pythonnet/.venv/lib/python3.14/site-packages/clr_loader/ffi/__init__.py", line 49, in load_mono
    INTERNALERROR>     return ffi.dlopen(path_str, ffi.RTLD_GLOBAL)
    INTERNALERROR>            ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
    INTERNALERROR>   File "/Users/runner/work/pythonnet/pythonnet/.venv/lib/python3.14/site-packages/cffi/api.py", line 150, in dlopen
    INTERNALERROR>     lib, function_cache = _make_ffi_library(self, name, flags)
    INTERNALERROR>                           ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
    INTERNALERROR>   File "/Users/runner/work/pythonnet/pythonnet/.venv/lib/python3.14/site-packages/cffi/api.py", line 834, in _make_ffi_library
    INTERNALERROR>     backendlib = _load_backend_lib(backend, libname, flags)
    INTERNALERROR>   File "/Users/runner/work/pythonnet/pythonnet/.venv/lib/python3.14/site-packages/cffi/api.py", line 829, in _load_backend_lib
    INTERNALERROR>     raise OSError(msg)
    INTERNALERROR> OSError: cannot load library '/Library/Frameworks/Mono.framework/Versions/Current/lib/libmonosgen-2.0.dylib': dlopen(/Library/Frameworks/Mono.framework/Versions/Current/lib/libmonosgen-2.0.dylib, 0x000A): tried: '/Library/Frameworks/Mono.framework/Versions/Current/lib/libmonosgen-2.0.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Library/Frameworks/Mono.framework/Versions/Current/lib/libmonosgen-2.0.dylib' (no such file), '/Library/Frameworks/Mono.framework/Versions/Current/lib/libmonosgen-2.0.dylib' (no such file).  Additionally, ctypes.util.find_library() did not manage to locate a library called '/Library/Frameworks/Mono.framework/Versions/Current/lib/libmonosgen-2.0.dylib'
    INTERNALERROR> 
    INTERNALERROR> The above exception was the direct cause of the following exception:
    INTERNALERROR> 
    INTERNALERROR> Traceback (most recent call last):
    INTERNALERROR>   File "/Users/runner/work/pythonnet/pythonnet/.venv/lib/python3.14/site-packages/_pytest/main.py", line 314, in wrap_session
    INTERNALERROR>     config._do_configure()
    INTERNALERROR>     ~~~~~~~~~~~~~~~~~~~~^^
    INTERNALERROR>   File "/Users/runner/work/pythonnet/pythonnet/.venv/lib/python3.14/site-packages/_pytest/config/__init__.py", line 1159, in _do_configure
    INTERNALERROR>     self.hook.pytest_configure.call_historic(kwargs=dict(config=self))
    INTERNALERROR>     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
    INTERNALERROR>   File "/Users/runner/work/pythonnet/pythonnet/.venv/lib/python3.14/site-packages/pluggy/_hooks.py", line 534, in call_historic
    INTERNALERROR>     res = self._hookexec(self.name, self._hookimpls.copy(), kwargs, False)
    INTERNALERROR>   File "/Users/runner/work/pythonnet/pythonnet/.venv/lib/python3.14/site-packages/pluggy/_manager.py", line 120, in _hookexec
    INTERNALERROR>     return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
    INTERNALERROR>            ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    INTERNALERROR>   File "/Users/runner/work/pythonnet/pythonnet/.venv/lib/python3.14/site-packages/pluggy/_callers.py", line 167, in _multicall
    INTERNALERROR>     raise exception
    INTERNALERROR>   File "/Users/runner/work/pythonnet/pythonnet/.venv/lib/python3.14/site-packages/pluggy/_callers.py", line 121, in _multicall
    INTERNALERROR>     res = hook_impl.function(*args)
    INTERNALERROR>   File "/Users/runner/work/pythonnet/pythonnet/tests/conftest.py", line 87, in pytest_configure
    INTERNALERROR>     import clr
    INTERNALERROR>   File "/Users/runner/work/pythonnet/pythonnet/clr.py", line 6, in <module>
    INTERNALERROR>     load()
    INTERNALERROR>     ~~~~^^
    INTERNALERROR>   File "/Users/runner/work/pythonnet/pythonnet/pythonnet/__init__.py", line 133, in load
    INTERNALERROR>     set_runtime_from_env()
    INTERNALERROR>     ~~~~~~~~~~~~~~~~~~~~^^
    INTERNALERROR>   File "/Users/runner/work/pythonnet/pythonnet/pythonnet/__init__.py", line 114, in set_runtime_from_env
    INTERNALERROR>     runtime = _create_runtime_from_spec(spec)
    INTERNALERROR>   File "/Users/runner/work/pythonnet/pythonnet/pythonnet/__init__.py", line 90, in _create_runtime_from_spec
    INTERNALERROR>     raise RuntimeError(
    INTERNALERROR>     ...<2 lines>...
    INTERNALERROR>     ) from exc
    INTERNALERROR> RuntimeError: Failed to create a .NET runtime (mono) using the
    INTERNALERROR>                 parameters {}.
  19. rayhaze commented on Apr 7, 2026

    @rayhaze
    rayhaze
    on Apr 7, 2026 · Hidden as off-topic
    show commentMore actions
  20. filmor
    pinned and unpinned a comment on Apr 8, 2026
  21. filmor commented on Apr 8, 2026

    @filmor
    filmor
    on Apr 8, 2026
    Member
    More actions

    The blocker is #2696 and me travelling. I will get back to this in a week or so. If someone contributes patches for the blocker and the remaining CI issues, that would of course help a lot :)

    Reacted by Momo
  22. filmor
    marked while installing pythonnet,i met the bug! #2704 as a duplicate of this issue on Apr 12, 2026
  23. alexchandel commented on Apr 27, 2026

    @alexchandel
    alexchandel
    on Apr 27, 2026
    More actions

    @filmor Do you think that CI failure (test_getting_overloaded_method_binding_does_not_leak_memory) is a genuine memory leak?

  24. dorfman2 commented on May 6, 2026

    @dorfman2
    dorfman2
    on May 6, 2026 · Hidden as off-topic
    show commentMore actions
  25. filmor commented on May 16, 2026

    @filmor
    filmor
    on May 16, 2026
    Member
    More actions

    https://github.com/pythonnet/pythonnet/releases/tag/v3.1.0-rc1 is hopefully the final release candidate. Please test it thoroughly. I will ensure that the changelog is up to date and release it as 3.1.0 next weekend, provided no blockers appear in the meantime.

    Reacted by Sebastian Fischer, ghaarsma and pepsibandit
    Reacted by Stef Smeets and pepsibandit
  26. ghaarsma commented on May 20, 2026

    @ghaarsma
    ghaarsma
    on May 20, 2026
    More actions

    Looking forward to the official release. We tested our application with V3.1.0-rc1 and found no issues.

    Thanks @filmor , for all your work in getting a Python 3.14 release out the door.

  27. wrichardsonafmil commented on May 21, 2026

    @wrichardsonafmil
    wrichardsonafmil
    on May 21, 2026 · Hidden as off-topic
    show commentMore actions
  28. freakboy3742 commented on May 22, 2026

    @freakboy3742
    freakboy3742
    on May 22, 2026
    Author
    More actions

    @filmor I've done another pass of testing with 3.1.0rc1 with Toga's test suite, and didn't spot any problems.

    Reacted by Benedikt Reinartz, heartacker and Scott Madeux
  29. filmor
    closed this as completedon May 23, 2026
  30. filmor
    unpinned this issue on May 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

  • @filmor
    filmor

Labels

No labels
No labels

Type

Task

Projects

No projects

    Milestone

    • 3.1.0

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

    You are visitor 01402503 — GeezerVison does not store the pages you look up.
    Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.