Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

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

Fechada Para iniciantes
#160,004 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
72/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
python
Domínio
build-system

Direção de pesquisa

Comece por Tools/build/generate-build-details.py e examine make_paths_relative(), que o relatório identifica como a origem dos caminhos incorretos. Reproduza o exemplo usando --relative-paths --config-file-path e compare os caminhos gravados headers, base_interpreter e libpython com os caminhos relativos ao prefixo absoluto. O trabalho estará concluído quando esses valores estiverem corretos e não dependerem do diretório em que o script é executado.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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

Linguagem predominante
Python
Estrelas
77.6k
Forks
38.4k
Merge médio
20h 19min
PRs com merge (30d)
624

Preparar o ambiente

Abrir no Codespaces

Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de python/cpython

Todas as issues de python/cpython

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.