Skip to content

Cannot install via "pip install greenlet" with python3.14t #484

@mcfreis

Description

@mcfreis

When calling "pip install greenlet", I receive the following:

pip install greenlet
Collecting greenlet
  Using cached greenlet-3.3.0.tar.gz (190 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: greenlet
  Building wheel for greenlet (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for greenlet (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [118 lines of output]
      pip_system_certs: ERROR: could not register module: No module named 'wrapt'
      running bdist_wheel
      running build
      running build_py
      creating build\lib.win-amd64-cpython-314t\greenlet
      copying src\greenlet\__init__.py -> build\lib.win-amd64-cpython-314t\greenlet
      creating build\lib.win-amd64-cpython-314t\greenlet\platform
      copying src\greenlet\platform\__init__.py -> build\lib.win-amd64-cpython-314t\greenlet\platform
      creating build\lib.win-amd64-cpython-314t\greenlet\tests
      copying src\greenlet\tests\fail_clearing_run_switches.py -> build\lib.win-amd64-cpython-314t\greenlet\tests
      copying src\greenlet\tests\fail_cpp_exception.py -> build\lib.win-amd64-cpython-314t\greenlet\tests
      copying src\greenlet\tests\fail_initialstub_already_started.py -> build\lib.win-amd64-cpython-314t\greenlet\tests
      copying src\greenlet\tests\fail_slp_switch.py -> build\lib.win-amd64-cpython-314t\greenlet\tests
      copying src\greenlet\tests\fail_switch_three_greenlets.py -> build\lib.win-amd64-cpython-314t\greenlet\tests
      copying src\greenlet\tests\fail_switch_three_greenlets2.py -> build\lib.win-amd64-cpython-314t\greenlet\tests
      copying src\greenlet\tests\fail_switch_two_greenlets.py -> build\lib.win-amd64-cpython-314t\greenlet\tests
      copying src\greenlet\tests\leakcheck.py -> build\lib.win-amd64-cpython-314t\greenlet\tests
      copying src\greenlet\tests\test_contextvars.py -> build\lib.win-amd64-cpython-314t\greenlet\tests
      copying src\greenlet\tests\test_cpp.py -> build\lib.win-amd64-cpython-314t\greenlet\tests
      copying src\greenlet\tests\test_extension_interface.py -> build\lib.win-amd64-cpython-314t\greenlet\tests
      copying src\greenlet\tests\test_gc.py -> build\lib.win-amd64-cpython-314t\greenlet\tests
      copying src\greenlet\tests\test_generator.py -> build\lib.win-amd64-cpython-314t\greenlet\tests
      copying src\greenlet\tests\test_generator_nested.py -> build\lib.win-amd64-cpython-314t\greenlet\tests
      copying src\greenlet\tests\test_greenlet.py -> build\lib.win-amd64-cpython-314t\greenlet\tests
      copying src\greenlet\tests\test_greenlet_trash.py -> build\lib.win-amd64-cpython-314t\greenlet\tests
      copying src\greenlet\tests\test_leaks.py -> build\lib.win-amd64-cpython-314t\greenlet\tests
      copying src\greenlet\tests\test_stack_saved.py -> build\lib.win-amd64-cpython-314t\greenlet\tests
      copying src\greenlet\tests\test_throw.py -> build\lib.win-amd64-cpython-314t\greenlet\tests
      copying src\greenlet\tests\test_tracing.py -> build\lib.win-amd64-cpython-314t\greenlet\tests
      copying src\greenlet\tests\test_version.py -> build\lib.win-amd64-cpython-314t\greenlet\tests
      copying src\greenlet\tests\test_weakref.py -> build\lib.win-amd64-cpython-314t\greenlet\tests
      copying src\greenlet\tests\__init__.py -> build\lib.win-amd64-cpython-314t\greenlet\tests
      running egg_info
      writing src\greenlet.egg-info\PKG-INFO
      writing dependency_links to src\greenlet.egg-info\dependency_links.txt
      writing requirements to src\greenlet.egg-info\requires.txt
      writing top-level names to src\greenlet.egg-info\top_level.txt
      reading manifest file 'src\greenlet.egg-info\SOURCES.txt'
      reading manifest template 'MANIFEST.in'
      warning: no previously-included files found matching 'benchmarks\*.json'
      no previously-included directories found matching 'docs\_build'
      warning: no files found matching '*.py' under directory 'appveyor'
      warning: no previously-included files matching '*.pyc' found anywhere in distribution
      warning: no previously-included files matching '*.pyd' found anywhere in distribution
      warning: no previously-included files matching '*.so' found anywhere in distribution
      warning: no previously-included files matching '.coverage' found anywhere in distribution
      adding license file 'LICENSE'
      adding license file 'LICENSE.PSF'
      writing manifest file 'src\greenlet.egg-info\SOURCES.txt'
      copying src\greenlet\CObjects.cpp -> build\lib.win-amd64-cpython-314t\greenlet
      copying src\greenlet\PyGreenlet.cpp -> build\lib.win-amd64-cpython-314t\greenlet
      copying src\greenlet\PyGreenlet.hpp -> build\lib.win-amd64-cpython-314t\greenlet
      copying src\greenlet\PyGreenletUnswitchable.cpp -> build\lib.win-amd64-cpython-314t\greenlet
      copying src\greenlet\PyModule.cpp -> build\lib.win-amd64-cpython-314t\greenlet
      copying src\greenlet\TBrokenGreenlet.cpp -> build\lib.win-amd64-cpython-314t\greenlet
      copying src\greenlet\TExceptionState.cpp -> build\lib.win-amd64-cpython-314t\greenlet
      copying src\greenlet\TGreenlet.cpp -> build\lib.win-amd64-cpython-314t\greenlet
      copying src\greenlet\TGreenlet.hpp -> build\lib.win-amd64-cpython-314t\greenlet
      copying src\greenlet\TGreenletGlobals.cpp -> build\lib.win-amd64-cpython-314t\greenlet
      copying src\greenlet\TMainGreenlet.cpp -> build\lib.win-amd64-cpython-314t\greenlet
      copying src\greenlet\TPythonState.cpp -> build\lib.win-amd64-cpython-314t\greenlet
      copying src\greenlet\TStackState.cpp -> build\lib.win-amd64-cpython-314t\greenlet
      copying src\greenlet\TThreadState.hpp -> build\lib.win-amd64-cpython-314t\greenlet
      copying src\greenlet\TThreadStateCreator.hpp -> build\lib.win-amd64-cpython-314t\greenlet
      copying src\greenlet\TThreadStateDestroy.cpp -> build\lib.win-amd64-cpython-314t\greenlet
      copying src\greenlet\TUserGreenlet.cpp -> build\lib.win-amd64-cpython-314t\greenlet
      copying src\greenlet\greenlet.cpp -> build\lib.win-amd64-cpython-314t\greenlet
      copying src\greenlet\greenlet.h -> build\lib.win-amd64-cpython-314t\greenlet
      copying src\greenlet\greenlet_allocator.hpp -> build\lib.win-amd64-cpython-314t\greenlet
      copying src\greenlet\greenlet_compiler_compat.hpp -> build\lib.win-amd64-cpython-314t\greenlet
      copying src\greenlet\greenlet_cpython_compat.hpp -> build\lib.win-amd64-cpython-314t\greenlet
      copying src\greenlet\greenlet_exceptions.hpp -> build\lib.win-amd64-cpython-314t\greenlet
      copying src\greenlet\greenlet_internal.hpp -> build\lib.win-amd64-cpython-314t\greenlet
      copying src\greenlet\greenlet_msvc_compat.hpp -> build\lib.win-amd64-cpython-314t\greenlet
      copying src\greenlet\greenlet_refs.hpp -> build\lib.win-amd64-cpython-314t\greenlet
      copying src\greenlet\greenlet_slp_switch.hpp -> build\lib.win-amd64-cpython-314t\greenlet
      copying src\greenlet\greenlet_thread_support.hpp -> build\lib.win-amd64-cpython-314t\greenlet
      copying src\greenlet\slp_platformselect.h -> build\lib.win-amd64-cpython-314t\greenlet
      copying src\greenlet\platform\setup_switch_x64_masm.cmd -> build\lib.win-amd64-cpython-314t\greenlet\platform
      copying src\greenlet\platform\switch_aarch64_gcc.h -> build\lib.win-amd64-cpython-314t\greenlet\platform
      copying src\greenlet\platform\switch_alpha_unix.h -> build\lib.win-amd64-cpython-314t\greenlet\platform
      copying src\greenlet\platform\switch_amd64_unix.h -> build\lib.win-amd64-cpython-314t\greenlet\platform
      copying src\greenlet\platform\switch_arm32_gcc.h -> build\lib.win-amd64-cpython-314t\greenlet\platform
      copying src\greenlet\platform\switch_arm32_ios.h -> build\lib.win-amd64-cpython-314t\greenlet\platform
      copying src\greenlet\platform\switch_arm64_masm.asm -> build\lib.win-amd64-cpython-314t\greenlet\platform
      copying src\greenlet\platform\switch_arm64_masm.obj -> build\lib.win-amd64-cpython-314t\greenlet\platform
      copying src\greenlet\platform\switch_arm64_msvc.h -> build\lib.win-amd64-cpython-314t\greenlet\platform
      copying src\greenlet\platform\switch_csky_gcc.h -> build\lib.win-amd64-cpython-314t\greenlet\platform
      copying src\greenlet\platform\switch_loongarch64_linux.h -> build\lib.win-amd64-cpython-314t\greenlet\platform
      copying src\greenlet\platform\switch_m68k_gcc.h -> build\lib.win-amd64-cpython-314t\greenlet\platform
      copying src\greenlet\platform\switch_mips_unix.h -> build\lib.win-amd64-cpython-314t\greenlet\platform
      copying src\greenlet\platform\switch_ppc64_aix.h -> build\lib.win-amd64-cpython-314t\greenlet\platform
      copying src\greenlet\platform\switch_ppc64_linux.h -> build\lib.win-amd64-cpython-314t\greenlet\platform
      copying src\greenlet\platform\switch_ppc_aix.h -> build\lib.win-amd64-cpython-314t\greenlet\platform
      copying src\greenlet\platform\switch_ppc_linux.h -> build\lib.win-amd64-cpython-314t\greenlet\platform
      copying src\greenlet\platform\switch_ppc_macosx.h -> build\lib.win-amd64-cpython-314t\greenlet\platform
      copying src\greenlet\platform\switch_ppc_unix.h -> build\lib.win-amd64-cpython-314t\greenlet\platform
      copying src\greenlet\platform\switch_riscv_unix.h -> build\lib.win-amd64-cpython-314t\greenlet\platform
      copying src\greenlet\platform\switch_s390_unix.h -> build\lib.win-amd64-cpython-314t\greenlet\platform
      copying src\greenlet\platform\switch_sh_gcc.h -> build\lib.win-amd64-cpython-314t\greenlet\platform
      copying src\greenlet\platform\switch_sparc_sun_gcc.h -> build\lib.win-amd64-cpython-314t\greenlet\platform
      copying src\greenlet\platform\switch_x32_unix.h -> build\lib.win-amd64-cpython-314t\greenlet\platform
      copying src\greenlet\platform\switch_x64_masm.asm -> build\lib.win-amd64-cpython-314t\greenlet\platform
      copying src\greenlet\platform\switch_x64_masm.obj -> build\lib.win-amd64-cpython-314t\greenlet\platform
      copying src\greenlet\platform\switch_x64_msvc.h -> build\lib.win-amd64-cpython-314t\greenlet\platform
      copying src\greenlet\platform\switch_x86_msvc.h -> build\lib.win-amd64-cpython-314t\greenlet\platform
      copying src\greenlet\platform\switch_x86_unix.h -> build\lib.win-amd64-cpython-314t\greenlet\platform
      copying src\greenlet\tests\_test_extension.c -> build\lib.win-amd64-cpython-314t\greenlet\tests
      copying src\greenlet\tests\_test_extension_cpp.cpp -> build\lib.win-amd64-cpython-314t\greenlet\tests
      running build_ext
      building 'greenlet._greenlet' extension
      creating build\temp.win-amd64-cpython-314t\Release\src\greenlet
      "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.44.35207\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -DWIN32=1 -DPy_GIL_DISABLED=1 -IC:\VirtualEnv3\tch314t\include -IC:\Programme\Python314\include -IC:\Programme\Python314\Include "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.44.35207\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\VS\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.26100.0\\um" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.26100.0\\shared" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.26100.0\\winrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.26100.0\\cppwinrt" /EHsc /Tpsrc/greenlet/greenlet.cpp /Fobuild\temp.win-amd64-cpython-314t\Release\src\greenlet\greenlet.obj /EHsr /GT /std:c++20
      greenlet.cpp
      C:\Users\dei09631\AppData\Local\Temp\pip-install-ai4hevfq\greenlet_3d434253b0114af0aff1ff2ab43efe96\src\greenlet\greenlet_msvc_compat.hpp(70): error C3861: "_PyCode_GetTLBCArray": Bezeichner wurde nicht gefunden.
      C:\Programme\Python314\include\internal\pycore_qsbr.h(75): warning C4200: Nicht dem Standard entsprechende Erweiterung: Null-Array in Struktur/Union
      C:\Programme\Python314\include\internal\pycore_qsbr.h(75): note: Dieser Member wird vom Standardkonstruktor oder Zuweisungsoperator f\x81r Kopieren/Verschieben ignoriert.
      error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\VC\\Tools\\MSVC\\14.44.35207\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for greenlet
Failed to build greenlet
error: failed-wheel-build-for-install

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

"_PyCode_GetTLBCArray" is not found. Waht can I do? Is this a known issue?

I'm running Python 3.14.2 free-threading build (tags/v3.14.2:df79316, Dec 5 2025, 17:11:07).

Regards,
Björn

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