benoitc / benoitc/http-parser

Build fails on python3.11

Offen
#94 0 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
C
Sterne
345
Forks
94
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

The build of http-parser fails on python 3.11.0rc1 with

```
Building wheel for http-parser (setup.py): started
Building wheel for http-parser (setup.py): finished with status 'error'
error: subprocess-exited-with-error

× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [25 lines of output]
/tmp/pip-install-raazgjz0/http-parser_212840a36e3a4d6cbbe9aee814b6db82/setup.py:12: DeprecationWarning: the imp module is deprecated in favour of importlib and slated for removal in Python 3.12; see the module's documentation for alternative uses
from imp import load_source
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.11
creating build/lib.linux-x86_64-3.11/http_parser
copying http_parser/util.py -> build/lib.linux-x86_64-3.11/http_parser
copying http_parser/_socketio.py -> build/lib.linux-x86_64-3.11/http_parser
copying http_parser/reader.py -> build/lib.linux-x86_64-3.11/http_parser
copying http_parser/__init__.py -> build/lib.linux-x86_64-3.11/http_parser
copying http_parser/pyparser.py -> build/lib.linux-x86_64-3.11/http_parser
copying http_parser/http.py -> build/lib.linux-x86_64-3.11/http_parser
running build_ext
building 'http_parser.parser' extension
creating build/temp.linux-x86_64-3.11
creating build/temp.linux-x86_64-3.11/http_parser
gcc -pthread -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iparser -I/root/git/daas/venv311/include -I/root/.pyenv/versions/3.11.0rc1/include/python3.11 -c http_parser/http_parser.c -o build/temp.linux-x86_64-3.11/http_parser/http_parser.o
gcc -pthread -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iparser -I/root/git/daas/venv311/include -I/root/.pyenv/versions/3.11.0rc1/include/python3.11 -c http_parser/parser.c -o build/temp.linux-x86_64-3.11/http_parser/parser.o
http_parser/parser.c:196:12: fatal error: longintrepr.h: No such file or directory
#include "longintrepr.h"
^~~~~~~~~~~~~~~
compilation terminated.
error: command '/usr/bin/gcc' failed with exit code 1
[end of output]
```

This is caused by the changed location of longintrepr. See https://docs.python.org/3.11/whatsnew/3.11.html and https://github.com/python/cpython/issues/79315

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Beginne damit, den Build mit Python 3.11 zu reproduzieren, und untersuche http_parser/parser.c, bei dessen Kompilierung der Build der Erweiterung aus setup.py fehlschlägt. Prüfe die in der verlinkten Dokumentation beschriebene Änderung am Speicherort der Python-3.11-Header und verifiziere anschließend, dass das http-parser wheel unter Python 3.11 erfolgreich gebaut wird, ohne ältere unterstützte Versionen zu beeinträchtigen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

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

Neue Issues direkt in Ihr Postfach

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