Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Python 3.13 is not supported #494

Open
dobairoland opened this issue Oct 22, 2024 · 2 comments
Open

Python 3.13 is not supported #494

dobairoland opened this issue Oct 22, 2024 · 2 comments

Comments

@dobairoland
Copy link

dobairoland commented Oct 22, 2024

Gdbgui requires a fixed version of greenlet: greenlet==3.0.0. There are fixes for greenlet for Python 3.13, e.g. python-greenlet/greenlet@528b816 which are not in greenlet==3.0.0. Without them the installation of gdbgui fails with the followring error:

Building wheels for collected packages: greenlet
  Building wheel for greenlet (pyproject.toml): started
  Building wheel for greenlet (pyproject.toml): finished with status 'error'
  error: subprocess-exited-with-error
  
  × Building wheel for greenlet (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [188 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build/lib.macosx-14.4-x86_64-cpython-313/greenlet
      copying src/greenlet/__init__.py -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet
      creating build/lib.macosx-14.4-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/__init__.py -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/platform
      creating build/lib.macosx-14.4-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/test_version.py -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/test_weakref.py -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/fail_slp_switch.py -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/test_gc.py -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/leakcheck.py -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/fail_switch_two_greenlets.py -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/test_generator.py -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/test_greenlet_trash.py -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/test_throw.py -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/test_tracing.py -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/fail_cpp_exception.py -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/fail_switch_three_greenlets.py -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/test_cpp.py -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/test_contextvars.py -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/test_greenlet.py -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/test_extension_interface.py -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/fail_clearing_run_switches.py -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/__init__.py -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/fail_switch_three_greenlets2.py -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/fail_initialstub_already_started.py -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/test_generator_nested.py -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/test_stack_saved.py -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/test_leaks.py -> build/lib.macosx-14.4-x86_64-cpython-313/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'
      adding license file 'AUTHORS'
      writing manifest file 'src/greenlet.egg-info/SOURCES.txt'
      copying src/greenlet/TBrokenGreenlet.cpp -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet
      copying src/greenlet/TExceptionState.cpp -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet
      copying src/greenlet/TGreenlet.cpp -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet
      copying src/greenlet/TGreenletGlobals.cpp -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet
      copying src/greenlet/TMainGreenlet.cpp -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet
      copying src/greenlet/TPythonState.cpp -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet
      copying src/greenlet/TStackState.cpp -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet
      copying src/greenlet/TThreadStateDestroy.cpp -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet
      copying src/greenlet/TUserGreenlet.cpp -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet
      copying src/greenlet/greenlet.cpp -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet
      copying src/greenlet/greenlet.h -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet
      copying src/greenlet/greenlet_allocator.hpp -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet
      copying src/greenlet/greenlet_compiler_compat.hpp -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet
      copying src/greenlet/greenlet_cpython_add_pending.hpp -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet
      copying src/greenlet/greenlet_cpython_compat.hpp -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet
      copying src/greenlet/greenlet_exceptions.hpp -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet
      copying src/greenlet/greenlet_greenlet.hpp -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet
      copying src/greenlet/greenlet_internal.hpp -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet
      copying src/greenlet/greenlet_refs.hpp -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet
      copying src/greenlet/greenlet_slp_switch.hpp -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet
      copying src/greenlet/greenlet_thread_state.hpp -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet
      copying src/greenlet/greenlet_thread_state_dict_cleanup.hpp -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet
      copying src/greenlet/greenlet_thread_support.hpp -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet
      copying src/greenlet/slp_platformselect.h -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet
      copying src/greenlet/platform/setup_switch_x64_masm.cmd -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_aarch64_gcc.h -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_alpha_unix.h -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_amd64_unix.h -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_arm32_gcc.h -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_arm32_ios.h -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_arm64_masm.asm -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_arm64_masm.obj -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_arm64_msvc.h -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_csky_gcc.h -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_loongarch64_linux.h -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_m68k_gcc.h -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_mips_unix.h -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_ppc64_aix.h -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_ppc64_linux.h -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_ppc_aix.h -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_ppc_linux.h -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_ppc_macosx.h -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_ppc_unix.h -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_riscv_unix.h -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_s390_unix.h -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_sparc_sun_gcc.h -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_x32_unix.h -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_x64_masm.asm -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_x64_masm.obj -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_x64_msvc.h -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_x86_msvc.h -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_x86_unix.h -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/tests/_test_extension.c -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/_test_extension_cpp.cpp -> build/lib.macosx-14.4-x86_64-cpython-313/greenlet/tests
      running build_ext
      building 'greenlet._greenlet' extension
      creating build/temp.macosx-14.4-x86_64-cpython-313/src/greenlet
      clang++ -fno-strict-overflow -Wsign-compare -Wunreachable-code -DNDEBUG -g -O3 -Wall -I/usr/local/opt/zlib/include -I/Users/espressif/builds/cH9GSDnY/2/idf/idf-constraints/test_venv/include -I/Users/espressif/.pyenv/versions/3.13.0/include/python3.13 -c src/greenlet/greenlet.cpp -o build/temp.macosx-14.4-x86_64-cpython-313/src/greenlet/greenlet.o --std=gnu++11
      In file included from src/greenlet/greenlet.cpp:19:
      In file included from src/greenlet/greenlet_internal.hpp:20:
      In file included from src/greenlet/greenlet_greenlet.hpp:26:
      /Users/espressif/.pyenv/versions/3.13.0/include/python3.13/internal/pycore_frame.h:8:4: error: "this header requires Py_BUILD_CORE define"
      #  error "this header requires Py_BUILD_CORE define"
         ^
      In file included from src/greenlet/greenlet.cpp:19:
      In file included from src/greenlet/greenlet_internal.hpp:20:
      In file included from src/greenlet/greenlet_greenlet.hpp:26:
      In file included from /Users/espressif/.pyenv/versions/3.13.0/include/python3.13/internal/pycore_frame.h:13:
      /Users/espressif/.pyenv/versions/3.13.0/include/python3.13/internal/pycore_code.h:8:4: error: "this header requires Py_BUILD_CORE define"
      #  error "this header requires Py_BUILD_CORE define"
         ^
      In file included from src/greenlet/greenlet.cpp:19:
      In file included from src/greenlet/greenlet_internal.hpp:20:
      In file included from src/greenlet/greenlet_greenlet.hpp:26:
      In file included from /Users/espressif/.pyenv/versions/3.13.0/include/python3.13/internal/pycore_frame.h:13:
      In file included from /Users/espressif/.pyenv/versions/3.13.0/include/python3.13/internal/pycore_code.h:11:
      /Users/espressif/.pyenv/versions/3.13.0/include/python3.13/internal/pycore_lock.h:13:4: error: "this header requires Py_BUILD_CORE define"
      #  error "this header requires Py_BUILD_CORE define"
         ^
      In file included from src/greenlet/greenlet.cpp:19:
      In file included from src/greenlet/greenlet_internal.hpp:20:
      In file included from src/greenlet/greenlet_greenlet.hpp:26:
      In file included from /Users/espressif/.pyenv/versions/3.13.0/include/python3.13/internal/pycore_frame.h:13:
      In file included from /Users/espressif/.pyenv/versions/3.13.0/include/python3.13/internal/pycore_code.h:12:
      /Users/espressif/.pyenv/versions/3.13.0/include/python3.13/internal/pycore_backoff.h:9:4: error: "this header requires Py_BUILD_CORE define"
      #  error "this header requires Py_BUILD_CORE define"
         ^
      In file included from src/greenlet/greenlet.cpp:19:
      In file included from src/greenlet/greenlet_internal.hpp:20:
      src/greenlet/greenlet_greenlet.hpp:104:9: error: unknown type name '_PyCFrame'
              _PyCFrame* cframe;
              ^
      src/greenlet/greenlet_greenlet.hpp:138:29: error: unknown type name '_PyCFrame'
              void set_new_cframe(_PyCFrame& frame) noexcept;
                                  ^
      src/greenlet/greenlet_greenlet.hpp:629:17: error: cannot initialize object parameter of type 'const greenlet::Greenlet' with an expression of type 'const greenlet::UserGreenlet'
                  if (this->started() || !this->_run_callable) {
                      ^~~~
      In file included from src/greenlet/greenlet.cpp:32:
      src/greenlet/TMainGreenlet.cpp:48:5: error: cannot initialize object parameter of type 'greenlet::Greenlet' with an expression of type 'greenlet::MainGreenlet'
          this->tp_clear();
          ^~~~
      src/greenlet/TMainGreenlet.cpp:93:9: error: cannot initialize object parameter of type 'const greenlet::Greenlet' with an expression of type 'greenlet::MainGreenlet'
              this->check_switch_allowed();
              ^~~~
      src/greenlet/TMainGreenlet.cpp:96:9: error: cannot initialize object parameter of type 'greenlet::Greenlet' with an expression of type 'greenlet::MainGreenlet'
              this->release_args();
              ^~~~
      src/greenlet/TMainGreenlet.cpp:100:32: error: cannot initialize object parameter of type 'greenlet::Greenlet' with an expression of type 'greenlet::MainGreenlet'
          switchstack_result_t err = this->g_switchstack();
                                     ^~~~
      src/greenlet/TMainGreenlet.cpp:104:16: error: cannot initialize object parameter of type 'greenlet::Greenlet' with an expression of type 'greenlet::MainGreenlet'
              return this->on_switchstack_or_initialstub_failure(
                     ^~~~
      src/greenlet/TMainGreenlet.cpp:125:22: error: cannot initialize object parameter of type 'greenlet::Greenlet' with an expression of type 'greenlet::MainGreenlet'
          return Greenlet::tp_traverse(visit, arg);
                           ^~~~~~~~~~~
      In file included from src/greenlet/greenlet.cpp:33:
      src/greenlet/TUserGreenlet.cpp:69:9: error: cannot initialize object parameter of type 'const greenlet::Greenlet' with an expression of type 'const greenlet::UserGreenlet'
          if (this->started()) {
              ^~~~
      src/greenlet/TUserGreenlet.cpp:100:22: error: cannot initialize object parameter of type 'greenlet::Greenlet' with an expression of type 'greenlet::UserGreenlet'
          return Greenlet::throw_GreenletExit_during_dealloc(current_thread_state);
                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      src/greenlet/TUserGreenlet.cpp:129:9: error: cannot initialize object parameter of type 'const greenlet::Greenlet' with an expression of type 'greenlet::UserGreenlet'
              this->check_switch_allowed();
              ^~~~
      src/greenlet/TUserGreenlet.cpp:132:9: error: cannot initialize object parameter of type 'greenlet::Greenlet' with an expression of type 'greenlet::UserGreenlet'
              this->release_args();
              ^~~~
      src/greenlet/TUserGreenlet.cpp:146:15: error: cannot initialize a variable of type 'Greenlet *' with an rvalue of type 'greenlet::UserGreenlet *'
          Greenlet* target = this;
                    ^        ~~~~
      src/greenlet/TUserGreenlet.cpp:158:36: error: cannot initialize object parameter of type 'greenlet::Greenlet' with an expression of type 'greenlet::UserGreenlet'
                      target->args() <<= this->args();
                                         ^~~~
      fatal error: too many errors emitted, stopping now [-ferror-limit=]
      20 errors generated.
      error: command '/usr/bin/clang++' failed with exit code 1
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for greenlet

To Reproduce

  1. Install Python 3.13.
  2. pip install gdbgui
@dobairoland
Copy link
Author

#478 is a related issue which is causing that gdbgui dependencies cannot be upgraded to get necessary fixes.

@wllenyj
Copy link

wllenyj commented Dec 12, 2024

Does have some workaround? Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants