Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

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

Ouverte Adaptée aux débutants
#160,004 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
72/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
python
Domaine
build-system

Piste de recherche

Commence par Tools/build/generate-build-details.py et examine make_paths_relative(), que le rapport identifie comme la source des chemins incorrects. Reproduis l’exemple avec --relative-paths --config-file-path et compare les chemins écrits headers, base_interpreter et libpython avec les chemins relatifs au préfixe absolu. Le travail est terminé lorsque ces valeurs sont correctes et ne dépendent pas du répertoire depuis lequel le script est exécuté.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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

Langage dominant
Python
Étoiles
77.6k
Forks
38.4k
Merge moyen
1 j 1 h
PR mergées (30 j)
589

Préparer son environnement

Ouvrir dans Codespaces

Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de python/cpython

Toutes les issues de python/cpython

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.