python / python/cpython

Add PEP 741 PyInitConfig API to the limited C API

Offen
#149,163 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

interpreter-core topic-C-API
Vorherrschende Sprache
Python
Sterne
77.2k
Forks
35.9k
PR-Merge-Kennzahlen
PR-Kennzahlen ausstehend

Beschreibung

The GDB project would be interested to use the limited C API to embed Python. Some APIs used by GDB are missing from the limited C API (well, it's limited ;-)), one of them is the PEP 741 PyInitConfig API.

I propose adding PEP 741 PyInitConfig API to the limited C API.

PEP 741 Rationale lists other projects embedding Python. More projects would benefit from PyInitConfig being in the limited C API.

For example, the vim text editor uses dlopen/dlsym and GetProcAddress on Windows to get Python symbols at runtime. The libpython library is loaded on demand (at the first Python usage). vim already supports the stable ABI. See src/if_python3.c.

So far, I found pyinstaller which already adopted the PyInitConfig API.

Linked PRs
  • gh-149194

Beitragsleitfaden

Beitragsleitfaden öffnen

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

Lesen Sie die Begründung für das Einbetten in PEP 741 und untersuchen Sie Vims src/if_python3.c, um den Anwendungsfall für die limited ABI zu verstehen. Sehen Sie sich anschließend den verknüpften PR gh-149194 und die Arbeiten an der limited C API an. Als abgeschlossen gilt die Aufgabe, wenn PyInitConfig über diese API für Projekte verfügbar ist, die Python einbetten.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
c, python
Bereich
api, backend
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

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