MagicStack / MagicStack/httptools

pip install failing for pypy3.11

Offen
#122 0 Kommentare 3 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Python
Sterne
1.3k
Forks
107
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

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]

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Reproduziere den Fehler mit dem bereitgestellten Docker-Befehl und vergleiche ihn mit der Installation aus Commit e265ae0. Untersuche, wie das Release 0.6.4 die generierten C-Dateien bündelt, und überprüfe, dass das Release Cython 3.1 verwendet. Als erledigt gilt die Aufgabe, wenn pip install httptools==0.6.4 unter dem angegebenen PyPy 3.11-Image erfolgreich ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
build-system
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.