pip install fails Mac M4
(crawl2) rbox@Mac crawlers % pip install crawl4ai
Collecting crawl4ai
Using cached Crawl4AI-0.3.742-py3-none-any.whl.metadata (24 kB)
Collecting aiosqlite~=0.20 (from crawl4ai)
Using cached aiosqlite-0.20.0-py3-none-any.whl.metadata (4.3 kB)
Collecting html2text~=2024.2 (from crawl4ai)
Using cached html2text-2024.2.26-py3-none-any.whl
Collecting lxml~=5.3 (from crawl4ai)
Using cached lxml-5.3.0-cp313-cp313-macosx_10_13_universal2.whl.metadata (3.8 kB)
Collecting litellm~=1.48 (from crawl4ai)
Using cached litellm-1.52.14-py3-none-any.whl.metadata (33 kB)
Collecting numpy<3,>=1.26.0 (from crawl4ai)
Using cached numpy-2.1.3-cp313-cp313-macosx_14_0_arm64.whl.metadata (62 kB)
Collecting pillow~=10.4 (from crawl4ai)
Using cached pillow-10.4.0-cp313-cp313-macosx_11_0_arm64.whl.metadata (9.2 kB)
Collecting playwright<1.48,>=1.47 (from crawl4ai)
Using cached playwright-1.47.0-py3-none-macosx_11_0_arm64.whl.metadata (3.5 kB)
Collecting python-dotenv~=1.0 (from crawl4ai)
Using cached python_dotenv-1.0.1-py3-none-any.whl.metadata (23 kB)
Collecting requests~=2.26 (from crawl4ai)
Using cached requests-2.32.3-py3-none-any.whl.metadata (4.6 kB)
Collecting beautifulsoup4~=4.12 (from crawl4ai)
Using cached beautifulsoup4-4.12.3-py3-none-any.whl.metadata (3.8 kB)
Collecting tf-playwright-stealth~=1.0 (from crawl4ai)
Using cached tf_playwright_stealth-1.1.0-py3-none-any.whl.metadata (2.6 kB)
Collecting xxhash~=3.4 (from crawl4ai)
Using cached xxhash-3.5.0-cp313-cp313-macosx_11_0_arm64.whl.metadata (12 kB)
Collecting rank-bm25~=0.2 (from crawl4ai)
Using cached rank_bm25-0.2.2-py3-none-any.whl.metadata (3.2 kB)
Collecting aiofiles~=24.0 (from crawl4ai)
Using cached aiofiles-24.1.0-py3-none-any.whl.metadata (10 kB)
Collecting colorama~=0.4 (from crawl4ai)
Using cached colorama-0.4.6-py2.py3-none-any.whl.metadata (17 kB)
Collecting snowballstemmer~=2.2 (from crawl4ai)
Using cached snowballstemmer-2.2.0-py2.py3-none-any.whl.metadata (6.5 kB)
Collecting typing_extensions>=4.0 (from aiosqlite~=0.20->crawl4ai)
Using cached typing_extensions-4.12.2-py3-none-any.whl.metadata (3.0 kB)
Collecting soupsieve>1.2 (from beautifulsoup4~=4.12->crawl4ai)
Using cached soupsieve-2.6-py3-none-any.whl.metadata (4.6 kB)
Collecting aiohttp (from litellm~=1.48->crawl4ai)
Using cached aiohttp-3.11.7-cp313-cp313-macosx_11_0_arm64.whl.metadata (7.7 kB)
Collecting click (from litellm~=1.48->crawl4ai)
Using cached click-8.1.7-py3-none-any.whl.metadata (3.0 kB)
Collecting importlib-metadata>=6.8.0 (from litellm~=1.48->crawl4ai)
Using cached importlib_metadata-8.5.0-py3-none-any.whl.metadata (4.8 kB)
Collecting jinja2<4.0.0,>=3.1.2 (from litellm~=1.48->crawl4ai)
Using cached jinja2-3.1.4-py3-none-any.whl.metadata (2.6 kB)
Collecting jsonschema<5.0.0,>=4.22.0 (from litellm~=1.48->crawl4ai)
Using cached jsonschema-4.23.0-py3-none-any.whl.metadata (7.9 kB)
Collecting openai>=1.54.0 (from litellm~=1.48->crawl4ai)
Using cached openai-1.55.0-py3-none-any.whl.metadata (24 kB)
Collecting pydantic<3.0.0,>=2.0.0 (from litellm~=1.48->crawl4ai)
Using cached pydantic-2.10.1-py3-none-any.whl.metadata (169 kB)
Collecting tiktoken>=0.7.0 (from litellm~=1.48->crawl4ai)
Using cached tiktoken-0.8.0-cp313-cp313-macosx_11_0_arm64.whl.metadata (6.6 kB)
Collecting tokenizers (from litellm~=1.48->crawl4ai)
Using cached tokenizers-0.20.3-cp313-cp313-macosx_11_0_arm64.whl.metadata (6.7 kB)
Collecting greenlet==3.0.3 (from playwright<1.48,>=1.47->crawl4ai)
Using cached greenlet-3.0.3.tar.gz (182 kB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Collecting pyee==12.0.0 (from playwright<1.48,>=1.47->crawl4ai)
Using cached pyee-12.0.0-py3-none-any.whl.metadata (2.8 kB)
Collecting charset-normalizer<4,>=2 (from requests~=2.26->crawl4ai)
Using cached charset_normalizer-3.4.0-cp313-cp313-macosx_11_0_arm64.whl.metadata (34 kB)
Collecting idna<4,>=2.5 (from requests~=2.26->crawl4ai)
Using cached idna-3.10-py3-none-any.whl.metadata (10 kB)
Collecting urllib3<3,>=1.21.1 (from requests~=2.26->crawl4ai)
Using cached urllib3-2.2.3-py3-none-any.whl.metadata (6.5 kB)
Collecting certifi>=2017.4.17 (from requests~=2.26->crawl4ai)
Using cached certifi-2024.8.30-py3-none-any.whl.metadata (2.2 kB)
Collecting fake-http-header<0.4.0,>=0.3.5 (from tf-playwright-stealth~=1.0->crawl4ai)
Using cached fake_http_header-0.3.5-py3-none-any.whl.metadata (3.5 kB)
Collecting pytest-mockito<0.0.5,>=0.0.4 (from tf-playwright-stealth~=1.0->crawl4ai)
Using cached pytest_mockito-0.0.4-py3-none-any.whl
Collecting zipp>=3.20 (from importlib-metadata>=6.8.0->litellm~=1.48->crawl4ai)
Using cached zipp-3.21.0-py3-none-any.whl.metadata (3.7 kB)
Collecting MarkupSafe>=2.0 (from jinja2<4.0.0,>=3.1.2->litellm~=1.48->crawl4ai)
Using cached MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl.metadata (4.0 kB)
Collecting attrs>=22.2.0 (from jsonschema<5.0.0,>=4.22.0->litellm~=1.48->crawl4ai)
Using cached attrs-24.2.0-py3-none-any.whl.metadata (11 kB)
Collecting jsonschema-specifications>=2023.03.6 (from jsonschema<5.0.0,>=4.22.0->litellm~=1.48->crawl4ai)
Using cached jsonschema_specifications-2024.10.1-py3-none-any.whl.metadata (3.0 kB)
Collecting referencing>=0.28.4 (from jsonschema<5.0.0,>=4.22.0->litellm~=1.48->crawl4ai)
Using cached referencing-0.35.1-py3-none-any.whl.metadata (2.8 kB)
Collecting rpds-py>=0.7.1 (from jsonschema<5.0.0,>=4.22.0->litellm~=1.48->crawl4ai)
Using cached rpds_py-0.21.0-cp313-cp313-macosx_11_0_arm64.whl.metadata (4.2 kB)
Collecting anyio<5,>=3.5.0 (from openai>=1.54.0->litellm~=1.48->crawl4ai)
Using cached anyio-4.6.2.post1-py3-none-any.whl.metadata (4.7 kB)
Collecting distro<2,>=1.7.0 (from openai>=1.54.0->litellm~=1.48->crawl4ai)
Using cached distro-1.9.0-py3-none-any.whl.metadata (6.8 kB)
Collecting httpx<1,>=0.23.0 (from openai>=1.54.0->litellm~=1.48->crawl4ai)
Using cached httpx-0.27.2-py3-none-any.whl.metadata (7.1 kB)
Collecting jiter<1,>=0.4.0 (from openai>=1.54.0->litellm~=1.48->crawl4ai)
Using cached jiter-0.7.1-cp313-cp313-macosx_11_0_arm64.whl.metadata (5.2 kB)
Collecting sniffio (from openai>=1.54.0->litellm~=1.48->crawl4ai)
Using cached sniffio-1.3.1-py3-none-any.whl.metadata (3.9 kB)
Collecting tqdm>4 (from openai>=1.54.0->litellm~=1.48->crawl4ai)
Using cached tqdm-4.67.0-py3-none-any.whl.metadata (57 kB)
Collecting annotated-types>=0.6.0 (from pydantic<3.0.0,>=2.0.0->litellm~=1.48->crawl4ai)
Using cached annotated_types-0.7.0-py3-none-any.whl.metadata (15 kB)
Collecting pydantic-core==2.27.1 (from pydantic<3.0.0,>=2.0.0->litellm~=1.48->crawl4ai)
Using cached pydantic_core-2.27.1-cp313-cp313-macosx_11_0_arm64.whl.metadata (6.6 kB)
Collecting pytest>=3 (from pytest-mockito<0.0.5,>=0.0.4->tf-playwright-stealth~=1.0->crawl4ai)
Using cached pytest-8.3.3-py3-none-any.whl.metadata (7.5 kB)
Collecting mockito>=1.0.6 (from pytest-mockito<0.0.5,>=0.0.4->tf-playwright-stealth~=1.0->crawl4ai)
Using cached mockito-1.5.3-py3-none-any.whl.metadata (1.5 kB)
Collecting regex>=2022.1.18 (from tiktoken>=0.7.0->litellm~=1.48->crawl4ai)
Using cached regex-2024.11.6-cp313-cp313-macosx_11_0_arm64.whl.metadata (40 kB)
Collecting aiohappyeyeballs>=2.3.0 (from aiohttp->litellm~=1.48->crawl4ai)
Using cached aiohappyeyeballs-2.4.3-py3-none-any.whl.metadata (6.1 kB)
Collecting aiosignal>=1.1.2 (from aiohttp->litellm~=1.48->crawl4ai)
Using cached aiosignal-1.3.1-py3-none-any.whl.metadata (4.0 kB)
Collecting frozenlist>=1.1.1 (from aiohttp->litellm~=1.48->crawl4ai)
Using cached frozenlist-1.5.0-cp313-cp313-macosx_11_0_arm64.whl.metadata (13 kB)
Collecting multidict<7.0,>=4.5 (from aiohttp->litellm~=1.48->crawl4ai)
Using cached multidict-6.1.0-cp313-cp313-macosx_11_0_arm64.whl.metadata (5.0 kB)
Collecting propcache>=0.2.0 (from aiohttp->litellm~=1.48->crawl4ai)
Using cached propcache-0.2.0-cp313-cp313-macosx_11_0_arm64.whl.metadata (7.7 kB)
Collecting yarl<2.0,>=1.17.0 (from aiohttp->litellm~=1.48->crawl4ai)
Using cached yarl-1.18.0-cp313-cp313-macosx_11_0_arm64.whl.metadata (67 kB)
Collecting huggingface-hub<1.0,>=0.16.4 (from tokenizers->litellm~=1.48->crawl4ai)
Using cached huggingface_hub-0.26.2-py3-none-any.whl.metadata (13 kB)
Collecting httpcore==1.* (from httpx<1,>=0.23.0->openai>=1.54.0->litellm~=1.48->crawl4ai)
Using cached httpcore-1.0.7-py3-none-any.whl.metadata (21 kB)
Collecting h11<0.15,>=0.13 (from httpcore==1.*->httpx<1,>=0.23.0->openai>=1.54.0->litellm~=1.48->crawl4ai)
Using cached h11-0.14.0-py3-none-any.whl.metadata (8.2 kB)
Collecting filelock (from huggingface-hub<1.0,>=0.16.4->tokenizers->litellm~=1.48->crawl4ai)
Using cached filelock-3.16.1-py3-none-any.whl.metadata (2.9 kB)
Collecting fsspec>=2023.5.0 (from huggingface-hub<1.0,>=0.16.4->tokenizers->litellm~=1.48->crawl4ai)
Using cached fsspec-2024.10.0-py3-none-any.whl.metadata (11 kB)
Collecting packaging>=20.9 (from huggingface-hub<1.0,>=0.16.4->tokenizers->litellm~=1.48->crawl4ai)
Using cached packaging-24.2-py3-none-any.whl.metadata (3.2 kB)
Collecting pyyaml>=5.1 (from huggingface-hub<1.0,>=0.16.4->tokenizers->litellm~=1.48->crawl4ai)
Using cached PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl.metadata (2.1 kB)
Collecting iniconfig (from pytest>=3->pytest-mockito<0.0.5,>=0.0.4->tf-playwright-stealth~=1.0->crawl4ai)
Using cached iniconfig-2.0.0-py3-none-any.whl.metadata (2.6 kB)
Collecting pluggy<2,>=1.5 (from pytest>=3->pytest-mockito<0.0.5,>=0.0.4->tf-playwright-stealth~=1.0->crawl4ai)
Using cached pluggy-1.5.0-py3-none-any.whl.metadata (4.8 kB)
Using cached Crawl4AI-0.3.742-py3-none-any.whl (119 kB)
Using cached aiofiles-24.1.0-py3-none-any.whl (15 kB)
Using cached aiosqlite-0.20.0-py3-none-any.whl (15 kB)
Using cached beautifulsoup4-4.12.3-py3-none-any.whl (147 kB)
Using cached colorama-0.4.6-py2.py3-none-any.whl (25 kB)
Using cached litellm-1.52.14-py3-none-any.whl (6.4 MB)
Using cached lxml-5.3.0-cp313-cp313-macosx_10_13_universal2.whl (8.2 MB)
Using cached numpy-2.1.3-cp313-cp313-macosx_14_0_arm64.whl (5.1 MB)
Using cached pillow-10.4.0-cp313-cp313-macosx_11_0_arm64.whl (3.4 MB)
Using cached playwright-1.47.0-py3-none-macosx_11_0_arm64.whl (33.2 MB)
Using cached pyee-12.0.0-py3-none-any.whl (14 kB)
Using cached python_dotenv-1.0.1-py3-none-any.whl (19 kB)
Using cached rank_bm25-0.2.2-py3-none-any.whl (8.6 kB)
Using cached requests-2.32.3-py3-none-any.whl (64 kB)
Using cached snowballstemmer-2.2.0-py2.py3-none-any.whl (93 kB)
Using cached tf_playwright_stealth-1.1.0-py3-none-any.whl (33 kB)
Using cached xxhash-3.5.0-cp313-cp313-macosx_11_0_arm64.whl (30 kB)
Using cached certifi-2024.8.30-py3-none-any.whl (167 kB)
Using cached charset_normalizer-3.4.0-cp313-cp313-macosx_11_0_arm64.whl (119 kB)
Using cached fake_http_header-0.3.5-py3-none-any.whl (14 kB)
Using cached idna-3.10-py3-none-any.whl (70 kB)
Using cached importlib_metadata-8.5.0-py3-none-any.whl (26 kB)
Using cached jinja2-3.1.4-py3-none-any.whl (133 kB)
Using cached jsonschema-4.23.0-py3-none-any.whl (88 kB)
Using cached openai-1.55.0-py3-none-any.whl (389 kB)
Using cached pydantic-2.10.1-py3-none-any.whl (455 kB)
Using cached pydantic_core-2.27.1-cp313-cp313-macosx_11_0_arm64.whl (1.8 MB)
Using cached soupsieve-2.6-py3-none-any.whl (36 kB)
Using cached tiktoken-0.8.0-cp313-cp313-macosx_11_0_arm64.whl (982 kB)
Using cached typing_extensions-4.12.2-py3-none-any.whl (37 kB)
Using cached urllib3-2.2.3-py3-none-any.whl (126 kB)
Using cached aiohttp-3.11.7-cp313-cp313-macosx_11_0_arm64.whl (451 kB)
Using cached click-8.1.7-py3-none-any.whl (97 kB)
Using cached tokenizers-0.20.3-cp313-cp313-macosx_11_0_arm64.whl (2.6 MB)
Using cached aiohappyeyeballs-2.4.3-py3-none-any.whl (14 kB)
Using cached aiosignal-1.3.1-py3-none-any.whl (7.6 kB)
Using cached annotated_types-0.7.0-py3-none-any.whl (13 kB)
Using cached anyio-4.6.2.post1-py3-none-any.whl (90 kB)
Using cached attrs-24.2.0-py3-none-any.whl (63 kB)
Using cached distro-1.9.0-py3-none-any.whl (20 kB)
Using cached frozenlist-1.5.0-cp313-cp313-macosx_11_0_arm64.whl (50 kB)
Using cached httpx-0.27.2-py3-none-any.whl (76 kB)
Using cached httpcore-1.0.7-py3-none-any.whl (78 kB)
Using cached huggingface_hub-0.26.2-py3-none-any.whl (447 kB)
Using cached jiter-0.7.1-cp313-cp313-macosx_11_0_arm64.whl (302 kB)
Using cached jsonschema_specifications-2024.10.1-py3-none-any.whl (18 kB)
Using cached MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl (12 kB)
Using cached mockito-1.5.3-py3-none-any.whl (30 kB)
Using cached multidict-6.1.0-cp313-cp313-macosx_11_0_arm64.whl (29 kB)
Using cached propcache-0.2.0-cp313-cp313-macosx_11_0_arm64.whl (44 kB)
Using cached pytest-8.3.3-py3-none-any.whl (342 kB)
Using cached referencing-0.35.1-py3-none-any.whl (26 kB)
Using cached regex-2024.11.6-cp313-cp313-macosx_11_0_arm64.whl (284 kB)
Using cached rpds_py-0.21.0-cp313-cp313-macosx_11_0_arm64.whl (320 kB)
Using cached sniffio-1.3.1-py3-none-any.whl (10 kB)
Using cached tqdm-4.67.0-py3-none-any.whl (78 kB)
Using cached yarl-1.18.0-cp313-cp313-macosx_11_0_arm64.whl (91 kB)
Using cached zipp-3.21.0-py3-none-any.whl (9.6 kB)
Using cached fsspec-2024.10.0-py3-none-any.whl (179 kB)
Using cached packaging-24.2-py3-none-any.whl (65 kB)
Using cached pluggy-1.5.0-py3-none-any.whl (20 kB)
Using cached PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl (171 kB)
Using cached filelock-3.16.1-py3-none-any.whl (16 kB)
Using cached iniconfig-2.0.0-py3-none-any.whl (5.9 kB)
Using cached h11-0.14.0-py3-none-any.whl (58 kB)
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
╰─> [188 lines of output]
running bdist_wheel
running build
running build_py
creating build/lib.macosx-15.0-arm64-cpython-313/greenlet
copying src/greenlet/__init__.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
creating build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
copying src/greenlet/platform/__init__.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
creating build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
copying src/greenlet/tests/test_version.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
copying src/greenlet/tests/test_weakref.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
copying src/greenlet/tests/fail_slp_switch.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
copying src/greenlet/tests/test_gc.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
copying src/greenlet/tests/leakcheck.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
copying src/greenlet/tests/fail_switch_two_greenlets.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
copying src/greenlet/tests/test_generator.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
copying src/greenlet/tests/test_greenlet_trash.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
copying src/greenlet/tests/test_throw.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
copying src/greenlet/tests/test_tracing.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
copying src/greenlet/tests/fail_cpp_exception.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
copying src/greenlet/tests/fail_switch_three_greenlets.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
copying src/greenlet/tests/test_cpp.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
copying src/greenlet/tests/test_contextvars.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
copying src/greenlet/tests/test_greenlet.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
copying src/greenlet/tests/test_extension_interface.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
copying src/greenlet/tests/fail_clearing_run_switches.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
copying src/greenlet/tests/__init__.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
copying src/greenlet/tests/fail_switch_three_greenlets2.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
copying src/greenlet/tests/fail_initialstub_already_started.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
copying src/greenlet/tests/test_generator_nested.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
copying src/greenlet/tests/test_stack_saved.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
copying src/greenlet/tests/test_leaks.py -> build/lib.macosx-15.0-arm64-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-15.0-arm64-cpython-313/greenlet
copying src/greenlet/TExceptionState.cpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
copying src/greenlet/TGreenlet.cpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
copying src/greenlet/TGreenletGlobals.cpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
copying src/greenlet/TMainGreenlet.cpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
copying src/greenlet/TPythonState.cpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
copying src/greenlet/TStackState.cpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
copying src/greenlet/TThreadStateDestroy.cpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
copying src/greenlet/TUserGreenlet.cpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
copying src/greenlet/greenlet.cpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
copying src/greenlet/greenlet.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
copying src/greenlet/greenlet_allocator.hpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
copying src/greenlet/greenlet_compiler_compat.hpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
copying src/greenlet/greenlet_cpython_add_pending.hpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
copying src/greenlet/greenlet_cpython_compat.hpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
copying src/greenlet/greenlet_exceptions.hpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
copying src/greenlet/greenlet_greenlet.hpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
copying src/greenlet/greenlet_internal.hpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
copying src/greenlet/greenlet_refs.hpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
copying src/greenlet/greenlet_slp_switch.hpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
copying src/greenlet/greenlet_thread_state.hpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
copying src/greenlet/greenlet_thread_state_dict_cleanup.hpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
copying src/greenlet/greenlet_thread_support.hpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
copying src/greenlet/slp_platformselect.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
copying src/greenlet/platform/setup_switch_x64_masm.cmd -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
copying src/greenlet/platform/switch_aarch64_gcc.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
copying src/greenlet/platform/switch_alpha_unix.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
copying src/greenlet/platform/switch_amd64_unix.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
copying src/greenlet/platform/switch_arm32_gcc.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
copying src/greenlet/platform/switch_arm32_ios.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
copying src/greenlet/platform/switch_arm64_masm.asm -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
copying src/greenlet/platform/switch_arm64_masm.obj -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
copying src/greenlet/platform/switch_arm64_msvc.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
copying src/greenlet/platform/switch_csky_gcc.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
copying src/greenlet/platform/switch_loongarch64_linux.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
copying src/greenlet/platform/switch_m68k_gcc.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
copying src/greenlet/platform/switch_mips_unix.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
copying src/greenlet/platform/switch_ppc64_aix.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
copying src/greenlet/platform/switch_ppc64_linux.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
copying src/greenlet/platform/switch_ppc_aix.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
copying src/greenlet/platform/switch_ppc_linux.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
copying src/greenlet/platform/switch_ppc_macosx.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
copying src/greenlet/platform/switch_ppc_unix.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
copying src/greenlet/platform/switch_riscv_unix.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
copying src/greenlet/platform/switch_s390_unix.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
copying src/greenlet/platform/switch_sparc_sun_gcc.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
copying src/greenlet/platform/switch_x32_unix.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
copying src/greenlet/platform/switch_x64_masm.asm -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
copying src/greenlet/platform/switch_x64_masm.obj -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
copying src/greenlet/platform/switch_x64_msvc.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
copying src/greenlet/platform/switch_x86_msvc.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
copying src/greenlet/platform/switch_x86_unix.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
copying src/greenlet/tests/_test_extension.c -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
copying src/greenlet/tests/_test_extension_cpp.cpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
running build_ext
building 'greenlet._greenlet' extension
creating build/temp.macosx-15.0-arm64-cpython-313/src/greenlet
clang++ -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -I/Users/rbox/.virtualenvs/crawl2/include -I/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.13/include/python3.13 -c src/greenlet/greenlet.cpp -o build/temp.macosx-15.0-arm64-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:
/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.13/include/python3.13/internal/pycore_frame.h:8:4: error: "this header requires Py_BUILD_CORE define"
8 | # 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 /opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.13/include/python3.13/internal/pycore_frame.h:13:
/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.13/include/python3.13/internal/pycore_code.h:8:4: error: "this header requires Py_BUILD_CORE define"
8 | # 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 /opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.13/include/python3.13/internal/pycore_frame.h:13:
In file included from /opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.13/include/python3.13/internal/pycore_code.h:11:
/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.13/include/python3.13/internal/pycore_lock.h:13:4: error: "this header requires Py_BUILD_CORE define"
13 | # 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 /opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.13/include/python3.13/internal/pycore_frame.h:13:
In file included from /opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.13/include/python3.13/internal/pycore_code.h:12:
/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.13/include/python3.13/internal/pycore_backoff.h:9:4: error: "this header requires Py_BUILD_CORE define"
9 | # 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'
104 | _PyCFrame* cframe;
| ^
src/greenlet/greenlet_greenlet.hpp:147:29: error: unknown type name '_PyCFrame'
147 | void set_new_cframe(_PyCFrame& frame) noexcept;
| ^
src/greenlet/greenlet_greenlet.hpp:660:17: error: cannot initialize object parameter of type 'const greenlet::Greenlet' with an expression of type 'const greenlet::UserGreenlet'
660 | 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'
48 | 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'
93 | 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'
96 | 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'
100 | 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'
104 | 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'
125 | 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'
69 | 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'
100 | 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'
129 | 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'
132 | this->release_args();
| ^~~~
src/greenlet/TUserGreenlet.cpp:146:15: error: cannot initialize a variable of type 'Greenlet *' with an rvalue of type 'greenlet::UserGreenlet *'
146 | 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'
158 | 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
Failed to build greenlet
ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (greenlet)
(crawl2) rbox@Mac crawlers %
seems to work fine on python3.12
(crawl4) rbox@Mac crawlers % mkvirtualenv crawl4 --python=$(which python3.12)
Hey @rcompton It's weird because I'm testing it on 3.9, 3.10, and 3.11. U,,, now I have to find them a M4 to test, ok was looking for an excuse to buy one :D:D Thx for your contribution haha
I have the same issue. I guess it is a compatibilty issue between old version of greenlet and Pytjon 3.13. Would it be possible change the way the package build greenlet?
had same issue as I tried to install it too, but on Fedora 41. Basically installed pyenv, then a previous version of python 3.10, also the python3-devel package (for the same version of python 3.10) and it resolved itself
had same issue as I tried to install it too, but on Fedora 41. Basically installed pyenv, then a previous version of python 3.10, also the python3-devel package (for the same version of python 3.10) and it resolved itself
I think pyenv does not work on Windows. ;-(
Had the same issue on an M3 with Python 3.13 Switching to Python 3.12 solved the problem 👍🏻
@seyf97 @SheBZ-git @rcompton It seems the issue is about Python version, not M3 or M4. In that case, I will make a virtual environment for 3.13, and test it over there to find the conflict; then I will update the setup script. However, I suggest using 3.9; bottom line, there are many other libraries whose stable version is still based on that.
Seems like this issue can be closed, since a) its greenlet issue if anything b) greenlet already published aarch64 wheel for python3.13 https://pypi.org/project/greenlet/#files i.e. problem no longer occurs
Thanks @rooterkyberian for confirming this. Closing the issue.