Build fails on python3.11

Offen
#94 0 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

  • #95 von @kasium — ohne Merge geschlossen

Bewertung

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

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.

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

Vorherrschende Sprache
C
Sterne
345
Forks
93
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus benoitc/http-parser

Alle Issues in benoitc/http-parser

Ähnliche Issues

Weitere Issues zu C

Neue Issues direkt in Ihr Postfach

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