MagicStack / MagicStack/httptools
pip install failing for pypy3.11
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 1.3k
- Forks
- 107
- PR merge metrics
- No merged PRs in 30d
Description
pip install httptools==0.6.4 fails under pypy3.11 with the log output below.
The issue is the Cython generated C files bundled with the release in pypi, similar to this one for lxml. In fact installing directly from the 0.6.4 commit works fine: pip install git+https://github.com/MagicStack/httptools@e265ae0.
The suggested fix there is to build a release with the 3.1 release of Cython which has this fix: https://github.com/cython/cython/pull/6482
how to reproduce
if you have docker, this is probably the easiest way to reproduce:
docker run -it --entrypoint=/bin/bash pypy:3.11-7.3.19 -c 'pip install httptools==0.6.4'
logs from unsuccessful install
Collecting httptools
Using cached httptools-0.6.4.tar.gz (240 kB)
Preparing metadata (setup.py) ... done
Building wheels for collected packages: httptools
Building wheel for httptools (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [39 lines of output]
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-pypy311
creating build/lib.linux-x86_64-pypy311/httptools
copying httptools/_version.py -> build/lib.linux-x86_64-pypy311/httptools
copying httptools/__init__.py -> build/lib.linux-x86_64-pypy311/httptools
creating build/lib.linux-x86_64-pypy311/httptools/parser
copying httptools/parser/__init__.py -> build/lib.linux-x86_64-pypy311/httptools/parser
copying httptools/parser/errors.py -> build/lib.linux-x86_64-pypy311/httptools/parser
running egg_info
writing httptools.egg-info/PKG-INFO
writing dependency_links to httptools.egg-info/dependency_links.txt
writing requirements to httptools.egg-info/requires.txt
writing top-level names to httptools.egg-info/top_level.txt
reading manifest file 'httptools.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
adding license file 'LICENSE'
writing manifest file 'httptools.egg-info/SOURCES.txt'
copying httptools/parser/cparser.pxd -> build/lib.linux-x86_64-pypy311/httptools/parser
copying httptools/parser/parser.pyx -> build/lib.linux-x86_64-pypy311/httptools/parser
copying httptools/parser/python.pxd -> build/lib.linux-x86_64-pypy311/httptools/parser
copying httptools/parser/url_cparser.pxd -> build/lib.linux-x86_64-pypy311/httptools/parser
copying httptools/parser/url_parser.pyx -> build/lib.linux-x86_64-pypy311/httptools/parser
running build_ext
building 'httptools.parser.parser' extension
creating build/temp.linux-x86_64-pypy311
creating build/temp.linux-x86_64-pypy311/httptools
creating build/temp.linux-x86_64-pypy311/httptools/parser
creating build/temp.linux-x86_64-pypy311/vendor
creating build/temp.linux-x86_64-pypy311/vendor/llhttp
creating build/temp.linux-x86_64-pypy311/vendor/llhttp/src
gcc -pthread -DNDEBUG -O2 -fPIC -I/tmp/pip-install-9p4wcs3b/httptools_a1fc635d910f47dfbfa0906126b6038e/vendor/llhttp/include -I/tmp/pip-install-9p4wcs3b/httptools_a1fc635d910f47dfbfa0906126b6038e/vendor/llhttp/src -I/home/oliver/Projects/lxml/venv/include -I/usr/include/pypy3.11 -c httptools/parser/parser.c -o build/temp.linux-x86_64-pypy311/httptools/parser/parser.o -O2
httptools/parser/parser.c:15388:12: fatal error: internal/pycore_frame.h: No such file or directory
15388 | #include "internal/pycore_frame.h"
| ^~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
error: command '/usr/bin/gcc' failed with exit code 1
[end of output]
Contributor guide
No contributing guide indexed for this repository
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 failure with the provided Docker command and compare it with installing from commit e265ae0. Inspect how the 0.6.4 release bundles the generated C files and verify the release uses Cython 3.1. Done means pip install httptools==0.6.4 succeeds under the specified PyPy 3.11 image.
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
- Clearly specified
- Newbie friendliness
- 45/100