Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

`generate-build-details.py --relative-paths --config-file-path` writes wrong paths

Offen Anfängerfreundlich
#160,004 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

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

Rechercherichtung

Beginne mit Tools/build/generate-build-details.py und untersuche make_paths_relative(), das im Bericht als Ursache der falschen Pfade genannt wird. Reproduziere das Beispiel mit --relative-paths --config-file-path und vergleiche die geschriebenen Pfade headers, base_interpreter und libpython mit den Pfaden relativ zum absoluten Präfix. Fertig ist die Arbeit, wenn diese Werte korrekt sind und nicht davon abhängen, in welchem Verzeichnis das Skript ausgeführt wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

type-bug
Bug report

PEP 739 says a relative base_prefix is relative to the directory that contains build-details.json, and the other paths are relative to base_prefix. With --relative-paths --config-file-path, make_paths_relative() first replaces base_prefix with a path relative to the config file's directory, such as ../... It then computes the other paths relative to that relative base_prefix instead of the absolute one, so they're wrong.

For example, for an install whose prefix is /opt/python, running this from /tmp/build:

./python Tools/build/generate-build-details.py \
    /opt/python/lib/python3.16/build-details.json \
    --relative-paths \
    --config-file-path /opt/python/lib/python3.16/build-details.json

writes "base_prefix": "../..", which is correct, but also "headers": "./opt/python/include/python3.16" instead of ./include/python3.16. base_interpreter and the libpython paths are wrong in the same way. Because the relative base_prefix ends up resolved against the current directory, the wrong values also change with the directory the script runs from: from /Users/me/src/cpython/build, headers becomes ./../../../opt/python/include/python3.16.

see astral-sh/python-build-standalone#885 for example of how PBS deals with this issue.

CPython versions tested on:

CPython main branch

Operating systems tested on:

macOS

Vorherrschende Sprache
Python
Sterne
77.6k
Forks
38.4k
Ø Merge
1 T. 1 Std.
Gemergte PRs (30 T.)
589

Entwicklungsumgebung

In Codespaces öffnen

Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.

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 python/cpython

Alle Issues in python/cpython

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

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