Che cos'è il formato di file PTH?
Un file .pth è un file di configurazione del percorso in testo semplice elaborato dal modulo integrato site di Python all'avvio dell'interprete. Ogni riga nel file è un percorso di directory da aggiungere a sys.path, oppure un'istruzione import da eseguire come codice Python. Le righe vuote e le righe che iniziano con # sono trattate come commenti e ignorate.
I file .pth devono essere collocati in una directory scansionata dal modulo site - tipicamente site-packages o dist-packages - in modo che Python li trovi automaticamente all'avvio dell'interprete. I gestori di pacchetti come pip e conda utilizzano i file .pth per registrare i pacchetti installati nel percorso di Python senza modificare l'installazione dell'interprete stessa.
Il formato è stabile dalla versione Python 1.5.2 (1999) e non contiene informazioni sulla versione. I file sono in testo semplice UTF-8 (o ASCII), solitamente di poche righe e inferiori a 1 KB.
Una nota importante sulla sicurezza: poiché le righe che iniziano con import vengono eseguite come codice Python a ogni avvio, un file .pth dannoso inserito in site-packages ottiene l'esecuzione persistente del codice - un noto vettore di iniezione su sistemi compromessi.
Si noti che .pth è anche l'estensione utilizzata da PyTorch per i checkpoint dei modelli serializzati - un formato binario del tutto non correlato alla configurazione del percorso di Python. La posizione e il contenuto del file sono il modo affidabile per distinguere tra i due utilizzi.
Sicurezza e incolumità
RISCHIO: MEDIUMUn file .pth di Python è testo semplice e non può essere eseguito da solo. Tuttavia, le righe che iniziano con «import» vengono eseguite come codice Python ogni volta che Python si avvia. Un file .pth dannoso inserito in site-packages è una nota tecnica di persistenza/iniezione di codice su sistemi compromessi. Se si trova un file .pth inaspettato nei propri site-packages di Python, ispezionarne il contenuto prima di fidarsi. Su un sistema integro, tutti i file .pth dovrebbero corrispondere a pacchetti legittimamente installati.
Dettagli del formato
in sintesi- PyTorch Model Checkpoint - PyTorch salva convenzionalmente i dizionari di stato dei modelli come file .pth (formato binario Pickle/ZIP); questo va in conflitto con i file di percorso .pth di Python e ora si preferisce .pt.
- VisualGPSXP Path File - VisualGPSXP (utility GPS legacy per Windows) salvava i percorsi delle tracce GPS come .pth; il software è obsoleto e questo uso è estremamente raro.
Programmi che aprono file PTH
Dettagli tecnici
specifiche approfondite| Codifica | Testo semplice, UTF-8 o ASCII |
| Contenitore | Testo semplice (nessun wrapper o struttura binaria) |
| Sintassi delle righe | Una voce per riga: un percorso di directory, un'istruzione «import <module>», una riga vuota o un commento «#» |
| Trigger di elaborazione | Il modulo «site» di Python legge tutti i file .pth in site-packages / dist-packages a ogni avvio dell'interprete |
| Effetto su sys.path | Ogni riga di directory valida viene aggiunta a sys.path, rendendo i suoi pacchetti importabili senza manipolazione esplicita del percorso |
| Esecuzione righe import | Le righe che iniziano con «import» vengono eseguite come codice Python all'avvio - un rischio di persistenza/iniezione su sistemi compromessi |
| Dimensione tipica del file | Inferiore a 1 KB (solitamente 1-10 righe) |
| Firma del file | Nessuna - testo semplice senza magic bytes o intestazione binaria |
| Tipo MIME | text/plain |
| Posizione file richiesta | Deve risiedere in una directory scansionata dal modulo site: site-packages, dist-packages o la root dell'installazione di Python |
| Stabilità del formato | Invariato da Python 1.5.2 (aprile 1999); nessun campo versione; completamente retrocompatibile |
| OS associato | Windows, macOS, Linux - ovunque giri Python |
| Collisione di nomi | .pth è usato anche da PyTorch per i file binari dei checkpoint dei modelli - un formato del tutto diverso distinto dal contenuto e dalla posizione del file |
| Rilasciato | Python 1.5.2 (1999) - site module formalised .pth processing |
| Ultima versione | No versioning - format unchanged; behaviour documented in Python 3 'site' module |
| Standard aperto | Sì · royalty-free |
| Specifica | docs.python.org |
Conversioni PTH
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file PTH.