Hvad er PTH-filformatet?
En .pth-fil er en konfigurationsfil i almindelig tekst, der behandles af Pythons indbyggede site-modul ved opstart af fortolkeren. Hver linje i filen er enten en mappesti, der skal føjes til sys.path, eller en import-sætning, der skal eksekveres som Python-kode. Blanke linjer og linjer, der begynder med #, behandles som kommentarer og ignoreres.
.pth-filer skal placeres i en mappe, som site-modulet scanner - typisk site-packages eller dist-packages - så Python finder dem automatisk, når fortolkeren starter. Pakkehåndteringsprogrammer som pip og conda bruger .pth-filer til at registrere installerede pakker på Python-stien uden at ændre selve fortolkerinstallationen.
Formatet har været stabilt siden Python 1.5.2 (1999) og indeholder ingen versionsoplysninger. Filerne er almindelig UTF-8 (eller ASCII) tekst, normalt kun på få linjer og under 1 KB.
En vigtig sikkerhedsbemærkning: Da linjer, der begynder med import, eksekveres som Python-kode ved hver opstart, kan en ondsindet .pth-fil placeret i site-packages opnå vedvarende kodeeksekvering - en kendt injektionsvektor på kompromitterede systemer.
Bemærk, at .pth også er den filendelse, der bruges af PyTorch til serialiserede model-checkpoints - et binært format, der er helt urelateret til Pythons stikonfiguration. Filens placering og indhold er den pålidelige måde at skelne mellem de to anvendelser.
Sikkerhed og tryghed
RISIKO: MEDIUMEn Python .pth-fil er almindelig tekst og kan ikke køre af sig selv. Linjer, der starter med «import», eksekveres dog som Python-kode hver gang Python starter. En ondsindet .pth-fil placeret i site-packages er en kendt teknik til persistens/kodeinjektion på kompromitterede systemer. Hvis du finder en uventet .pth-fil i din Python site-packages, skal du undersøge dens indhold, før du stoler på den. På et sundt system bør alle .pth-filer svare til legitimt installerede pakker.
Formatdetaljer
kort fortalt- PyTorch Model Checkpoint - PyTorch gemmer konventionelt model-state-dicts som .pth-filer (binært Pickle/ZIP-format); dette er i konflikt med Pythons egne .pth-stifiler, og .pt foretrækkes nu.
- VisualGPSXP Path File - VisualGPSXP (ældre GPS-værktøj til Windows) gemte GPS-sporstier som .pth; softwaren er forældet, og denne brug er ekstremt sjælden.
Programmer der åbner PTH-filer
Tekniske detaljer
dyb specifikation| Kodning | Almindelig tekst, UTF-8 eller ASCII |
| Container | Almindelig tekst (ingen wrapper eller binær struktur) |
| Linjesyntaks | Én post pr. linje: en mappesti, en «import <modul>»-sætning, en blank linje eller en «#»-kommentar |
| Behandlings-trigger | Pythons «site»-modul læser alle .pth-filer i site-packages / dist-packages ved hver opstart af fortolkeren |
| Effekt på sys.path | Hver gyldig mappelinje føjes til sys.path, hvilket gør dens pakker importable uden eksplicit stimanipulation |
| Eksekvering af import-linjer | Linjer, der begynder med «import», eksekveres som Python-kode ved opstart - en risiko for persistens/injektion på kompromitterede systemer |
| Typisk filstørrelse | Under 1 KB (normalt 1-10 linjer) |
| Filsignatur | Ingen - almindelig tekst uden magic bytes eller binær header |
| MIME-type | text/plain |
| Påkrævet filplacering | Skal ligge i en mappe, der scannes af site-modulet: site-packages, dist-packages eller Python-installationsroden |
| Formatstabilitet | Uændret siden Python 1.5.2 (april 1999); intet versionsfelt; fuldt bagudkompatibel |
| Associeret OS | Windows, macOS, Linux - overalt hvor Python kører |
| Navnesammenstød | .pth bruges også af PyTorch til binære model-checkpoint-filer - et helt andet format, der kendes på filindhold og placering |
| Udgivet | Python 1.5.2 (1999) - site module formalised .pth processing |
| Seneste version | No versioning - format unchanged; behaviour documented in Python 3 'site' module |
| Åben standard | Ja · royaltyfri |
| Specifikation | docs.python.org |
PTH-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om PTH-filer.