[BUG] Problem when installing botright on uv environment running on WSL Windows
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 1k
- Forks
- 85
- PR merge metrics
- No merged PRs in 30d
Description
Describe the bug
Problem when installing botright on uv environment
Code Sample
To Reproduce
uv pip install botright
Expected behavior
I want to install botright in my environment without any problem
Screenshots
Resolved 130 packages in 1.06s
× Failed to build `greenlet==2.0.2`
├─▶ The build backend returned an error
╰─▶ Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
[stdout]
running bdist_wheel
running build
running build_py
copying src/greenlet/__init__.py -> build/lib.linux-x86_64-cpython-312/greenlet
copying src/greenlet/tests/test_generator.py -> build/lib.linux-x86_64-cpython-312/greenlet/tests
copying src/greenlet/tests/test_generator_nested.py -> build/lib.linux-x86_64-cpython-312/greenlet/tests
copying src/greenlet/tests/test_tracing.py -> build/lib.linux-x86_64-cpython-312/greenlet/tests
copying src/greenlet/tests/test_throw.py -> build/lib.linux-x86_64-cpython-312/greenlet/tests
copying src/greenlet/tests/test_contextvars.py -> build/lib.linux-x86_64-cpython-312/greenlet/tests
copying src/greenlet/tests/test_stack_saved.py -> build/lib.linux-x86_64-cpython-312/greenlet/tests
copying src/greenlet/tests/test_greenlet_trash.py -> build/lib.linux-x86_64-cpython-312/greenlet/tests
copying src/greenlet/tests/leakcheck.py -> build/lib.linux-x86_64-cpython-312/greenlet/tests
copying src/greenlet/tests/__init__.py -> build/lib.linux-x86_64-cpython-312/greenlet/tests
copying src/greenlet/tests/test_greenlet.py -> build/lib.linux-x86_64-cpython-312/greenlet/tests
copying src/greenlet/tests/test_leaks.py -> build/lib.linux-x86_64-cpython-312/greenlet/tests
copying src/greenlet/tests/test_version.py -> build/lib.linux-x86_64-cpython-312/greenlet/tests
copying src/greenlet/tests/test_extension_interface.py -> build/lib.linux-x86_64-cpython-312/greenlet/tests
copying src/greenlet/tests/test_gc.py -> build/lib.linux-x86_64-cpython-312/greenlet/tests
copying src/greenlet/tests/test_weakref.py -> build/lib.linux-x86_64-cpython-312/greenlet/tests
copying src/greenlet/tests/test_cpp.py -> build/lib.linux-x86_64-cpython-312/greenlet/tests
copying src/greenlet/platform/__init__.py -> build/lib.linux-x86_64-cpython-312/greenlet/platform
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'
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/greenlet.cpp -> build/lib.linux-x86_64-cpython-312/greenlet
copying src/greenlet/greenlet.h -> build/lib.linux-x86_64-cpython-312/greenlet
copying src/greenlet/greenlet_allocator.hpp -> build/lib.linux-x86_64-cpython-312/greenlet
copying src/greenlet/greenlet_compiler_compat.hpp -> build/lib.linux-x86_64-cpython-312/greenlet
copying src/greenlet/greenlet_cpython_compat.hpp -> build/lib.linux-x86_64-cpython-312/greenlet
copying src/greenlet/greenlet_exceptions.hpp -> build/lib.linux-x86_64-cpython-312/greenlet
copying src/greenlet/greenlet_greenlet.hpp -> build/lib.linux-x86_64-cpython-312/greenlet
copying src/greenlet/greenlet_internal.hpp -> build/lib.linux-x86_64-cpython-312/greenlet
copying src/greenlet/greenlet_refs.hpp -> build/lib.linux-x86_64-cpython-312/greenlet
copying src/greenlet/greenlet_slp_switch.hpp -> build/lib.linux-x86_64-cpython-312/greenlet
copying src/greenlet/greenlet_thread_state.hpp -> build/lib.linux-x86_64-cpython-312/greenlet
copying src/greenlet/greenlet_thread_state_dict_cleanup.hpp -> build/lib.linux-x86_64-cpython-312/greenlet
copying src/greenlet/greenlet_thread_support.hpp -> build/lib.linux-x86_64-cpython-312/greenlet
copying src/greenlet/slp_platformselect.h -> build/lib.linux-x86_64-cpython-312/greenlet
copying src/greenlet/tests/_test_extension.c -> build/lib.linux-x86_64-cpython-312/greenlet/tests
copying src/greenlet/tests/_test_extension_cpp.cpp -> build/lib.linux-x86_64-cpython-312/greenlet/tests
copying src/greenlet/platform/setup_switch_x64_masm.cmd -> build/lib.linux-x86_64-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_aarch64_gcc.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_alpha_unix.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_amd64_unix.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_arm32_gcc.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_arm32_ios.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_arm64_masm.asm -> build/lib.linux-x86_64-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_arm64_masm.obj -> build/lib.linux-x86_64-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_arm64_msvc.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_csky_gcc.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_m68k_gcc.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_mips_unix.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_ppc64_aix.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_ppc64_linux.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_ppc_aix.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_ppc_linux.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_ppc_macosx.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_ppc_unix.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_riscv_unix.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_s390_unix.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_sparc_sun_gcc.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_x32_unix.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_x64_masm.asm -> build/lib.linux-x86_64-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_x64_masm.obj -> build/lib.linux-x86_64-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_x64_msvc.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_x86_msvc.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform
copying src/greenlet/platform/switch_x86_unix.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform
running build_ext
building 'greenlet._greenlet' extension
g++ -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/home/juanfran/.cache/uv/builds-v0/.tmpy4gwb2/include -I/usr/local/include/python3.12 -c src/greenlet/greenlet.cpp -o
build/temp.linux-x86_64-cpython-312/src/greenlet/greenlet.o
[stderr]
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
In file included from src/greenlet/greenlet_internal.hpp:20,
from src/greenlet/greenlet.cpp:19:
src/greenlet/greenlet_greenlet.hpp: In member function ‘void greenlet::PythonState::operator<<(const PyThreadState*)’:
src/greenlet/greenlet_greenlet.hpp:831:41: error: ‘_PyCFrame’ {aka ‘struct _PyCFrame’} has no member named ‘use_tracing’
831 | this->use_tracing = tstate->cframe->use_tracing;
| ^~~~~~~~~~~
src/greenlet/greenlet_greenlet.hpp:834:37: error: ‘const PyThreadState’ {aka ‘const struct _ts’} has no member named ‘recursion_limit’; did you mean ‘py_recursion_limit’?
834 | this->recursion_depth = tstate->recursion_limit - tstate->recursion_remaining;
| ^~~~~~~~~~~~~~~
| py_recursion_limit
src/greenlet/greenlet_greenlet.hpp:834:63: error: ‘const PyThreadState’ {aka ‘const struct _ts’} has no member named ‘recursion_remaining’; did you mean ‘c_recursion_remaining’?
834 | this->recursion_depth = tstate->recursion_limit - tstate->recursion_remaining;
| ^~~~~~~~~~~~~~~~~~~
| c_recursion_remaining
src/greenlet/greenlet_greenlet.hpp:848:42: error: ‘const PyThreadState’ {aka ‘const struct _ts’} has no member named ‘trash_delete_nesting’
848 | this->trash_delete_nesting = tstate->trash_delete_nesting;
| ^~~~~~~~~~~~~~~~~~~~
src/greenlet/greenlet_greenlet.hpp: In member function ‘void greenlet::PythonState::operator>>(PyThreadState*)’:
src/greenlet/greenlet_greenlet.hpp:867:21: error: ‘_PyCFrame’ {aka ‘struct _PyCFrame’} has no member named ‘use_tracing’
867 | tstate->cframe->use_tracing = this->use_tracing;
| ^~~~~~~~~~~
src/greenlet/greenlet_greenlet.hpp:870:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘recursion_remaining’; did you mean ‘c_recursion_remaining’?
870 | tstate->recursion_remaining = tstate->recursion_limit - this->recursion_depth;
| ^~~~~~~~~~~~~~~~~~~
| c_recursion_remaining
src/greenlet/greenlet_greenlet.hpp:870:43: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘recursion_limit’; did you mean ‘py_recursion_limit’?
870 | tstate->recursion_remaining = tstate->recursion_limit - this->recursion_depth;
| ^~~~~~~~~~~~~~~
| py_recursion_limit
src/greenlet/greenlet_greenlet.hpp:881:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘trash_delete_nesting’
881 | tstate->trash_delete_nesting = this->trash_delete_nesting;
| ^~~~~~~~~~~~~~~~~~~~
src/greenlet/greenlet_greenlet.hpp: In member function ‘void greenlet::PythonState::will_switch_from(PyThreadState*)’:
src/greenlet/greenlet_greenlet.hpp:891:48: error: ‘_PyCFrame’ {aka ‘struct _PyCFrame’} has no member named ‘use_tracing’
891 | this->use_tracing = origin_tstate->cframe->use_tracing;
| ^~~~~~~~~~~
src/greenlet/greenlet_greenlet.hpp: In member function ‘void greenlet::PythonState::set_initial_state(const PyThreadState*)’:
src/greenlet/greenlet_greenlet.hpp:899:37: error: ‘const PyThreadState’ {aka ‘const struct _ts’} has no member named ‘recursion_limit’; did you mean ‘py_recursion_limit’?
899 | this->recursion_depth = tstate->recursion_limit - tstate->recursion_remaining;
| ^~~~~~~~~~~~~~~
| py_recursion_limit
src/greenlet/greenlet_greenlet.hpp:899:63: error: ‘const PyThreadState’ {aka ‘const struct _ts’} has no member named ‘recursion_remaining’; did you mean ‘c_recursion_remaining’?
899 | this->recursion_depth = tstate->recursion_limit - tstate->recursion_remaining;
| ^~~~~~~~~~~~~~~~~~~
| c_recursion_remaining
src/greenlet/greenlet.cpp: In function ‘PyObject* mod_get_tstate_trash_delete_nesting(PyObject*)’:
src/greenlet/greenlet.cpp:3095:36: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘trash_delete_nesting’
3095 | return PyLong_FromLong(tstate->trash_delete_nesting);
| ^~~~~~~~~~~~~~~~~~~~
error: command '/usr/bin/g++' failed with exit code 1
hint: This usually indicates a problem with the package or the build environment.
help: `greenlet` (v2.0.2) was included because `botright` (v0.4.post1) depends on `playwright` (v1.37.0) which depends on `greenlet`
Desktop (please complete the following information):
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
Additional context
Add any other context about the problem here.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the issue with uv pip install botright in a Windows WSL environment using Python 3.12, then inspect the dependency resolution and the reported greenlet build failure. Done means botright installs successfully in the affected environment without the shown compilation errors.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100