Skip to content

pip install failing for pypy3.11 #122

@olliemath

Description

@olliemath

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: cython/cython#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]

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