O que é o formato de ficheiro PTH?
Um arquivo .pth é um arquivo de configuração de caminho em texto simples processado pelo módulo integrado site do Python na inicialização do interpretador. Cada linha no arquivo é um caminho de diretório para anexar ao sys.path, ou uma instrução import para ser executada como código Python. Linhas em branco e linhas que começam com # são tratadas como comentários e ignoradas.
Arquivos .pth devem ser colocados em um diretório que o módulo site verifica - normalmente site-packages ou dist-packages - para que o Python os encontre automaticamente quando o interpretador iniciar. Gerenciadores de pacotes como pip e conda usam arquivos .pth para registrar pacotes instalados no caminho do Python sem modificar a instalação do interpretador em si.
O formato é estável desde o Python 1.5.2 (1999) e não carrega informações de versão. Os arquivos são texto simples UTF-8 (ou ASCII), geralmente com apenas algumas linhas e menos de 1 KB.
Uma nota de segurança importante: como as linhas que começam com import são executadas como código Python a cada inicialização, um arquivo .pth malicioso colocado em site-packages consegue execução persistente de código - um vetor de injeção conhecido em sistemas comprometidos.
Observe que .pth também é a extensão usada pelo PyTorch para checkpoints de modelos serializados - um formato binário inteiramente não relacionado à configuração de caminho do Python. A localização e o conteúdo do arquivo são as formas confiáveis de distinguir entre os dois usos.
Segurança e proteção
RISCO: MEDIUMUm arquivo .pth do Python é texto simples e não pode ser executado por conta própria. No entanto, linhas que começam com «import» são executadas como código Python toda vez que o Python inicia. Um arquivo .pth malicioso colocado em site-packages é uma técnica conhecida de persistência/injeção de código em sistemas comprometidos. Se você encontrar um arquivo .pth inesperado em seu site-packages do Python, inspecione seu conteúdo antes de confiar nele. Em um sistema saudável, todos os arquivos .pth devem corresponder a pacotes legitimamente instalados.
Detalhes do formato
em resumo- PyTorch Model Checkpoint - O PyTorch convencionalmente salva dicionários de estado de modelo como arquivos .pth (formato binário Pickle/ZIP); isso conflita com os próprios arquivos de caminho .pth do Python e .pt é agora preferido.
- VisualGPSXP Path File - O VisualGPSXP (utilitário GPS legado para Windows) salvava caminhos de trilhas GPS como .pth; o software está obsoleto e este uso é extremamente raro.
Programas que abrem arquivos PTH
Detalhes técnicos
especificação profunda| Codificação | Texto simples, UTF-8 ou ASCII |
| Contêiner | Texto simples (sem wrapper ou estrutura binária) |
| Sintaxe de linha | Uma entrada por linha: um caminho de diretório, uma instrução «import <module>», uma linha em branco ou um comentário «#» |
| Gatilho de processamento | O módulo «site» do Python lê todos os arquivos .pth em site-packages / dist-packages a cada inicialização do interpretador |
| Efeito no sys.path | Cada linha de diretório válida é anexada ao sys.path, tornando seus pacotes importáveis sem manipulação explícita de caminho |
| Execução de linha import | Linhas que começam com «import» são executadas como código Python na inicialização - um risco de persistência/injeção em sistemas comprometidos |
| Tamanho de arquivo típico | Menos de 1 KB (geralmente 1-10 linhas) |
| Assinatura do arquivo | Nenhuma - texto simples sem magic bytes ou cabeçalho binário |
| Tipo MIME | text/plain |
| Localização de arquivo necessária | Deve residir em um diretório verificado pelo módulo site: site-packages, dist-packages ou a raiz da instalação do Python |
| Estabilidade do formato | Inalterado desde o Python 1.5.2 (abril de 1999); sem campo de versão; totalmente compatível com versões anteriores |
| SO associado | Windows, macOS, Linux - onde quer que o Python seja executado |
| Colisão de nomes | .pth também é usado pelo PyTorch para arquivos de checkpoint de modelo binário - um formato inteiramente diferente distinguido pelo conteúdo e localização do arquivo |
| Lançado | Python 1.5.2 (1999) - site module formalised .pth processing |
| Versão mais recente | No versioning - format unchanged; behaviour documented in Python 3 'site' module |
| Padrão aberto | Sim · livre de royalties |
| Especificação | docs.python.org |
Conversões de PTH
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos PTH.