Qu'est-ce que le format de fichier PTH ?
Un fichier .pth est un fichier de configuration de chemin en texte brut traité par le module intégré site de Python au démarrage de l'interpréteur. Chaque ligne du fichier est soit un chemin de répertoire à ajouter à sys.path, soit une instruction import à exécuter en tant que code Python. Les lignes vides et les lignes commençant par # sont traitées comme des commentaires et ignorées.
Les fichiers .pth doivent être placés dans un répertoire analysé par le module site - généralement site-packages ou dist-packages - afin que Python les trouve automatiquement au démarrage de l'interpréteur. Les gestionnaires de paquets tels que pip et conda utilisent des fichiers .pth pour enregistrer les paquets installés sur le chemin Python sans modifier l'installation de l'interpréteur elle-même.
Le format est stable depuis Python 1.5.2 (1999) et ne comporte aucune information de version. Les fichiers sont en texte brut UTF-8 (ou ASCII), ne comportant généralement que quelques lignes et pesant moins de 1 Ko.
Une note de sécurité importante : comme les lignes commençant par import sont exécutées en tant que code Python à chaque démarrage, un fichier .pth malveillant placé dans site-packages permet une exécution de code persistante - un vecteur d'injection connu sur les systèmes compromis.
Notez que .pth est également l'extension utilisée par PyTorch pour les points de contrôle de modèles sérialisés - un format binaire totalement sans rapport avec la configuration du chemin Python. L'emplacement et le contenu du fichier sont les moyens fiables de distinguer les deux utilisations.
Sécurité et sûreté
RISQUE : MEDIUMUn fichier .pth Python est en texte brut et ne peut pas s'exécuter seul. Cependant, les lignes commençant par « import » sont exécutées en tant que code Python à chaque démarrage de Python. Un fichier .pth malveillant placé dans site-packages est une technique connue de persistance/injection de code sur les systèmes compromis. Si vous trouvez un fichier .pth inattendu dans votre dossier site-packages, inspectez son contenu avant de lui faire confiance. Sur un système sain, tous les fichiers .pth devraient correspondre à des paquets légitimement installés.
Détails du format
en bref- Point de contrôle de modèle PyTorch - PyTorch enregistre conventionnellement les dictionnaires d'état des modèles sous forme de fichiers .pth (format binaire Pickle/ZIP) ; cela entre en conflit avec les propres fichiers de chemin .pth de Python et .pt est désormais préféré.
- Fichier de chemin VisualGPSXP - VisualGPSXP (utilitaire GPS hérité pour Windows) enregistrait les tracés GPS sous l'extension .pth ; le logiciel est obsolète et cet usage est extrêmement rare.
Programmes qui ouvrent les fichiers PTH
Détails techniques
spécifications approfondies| Encodage | Texte brut, UTF-8 ou ASCII |
| Conteneur | Texte brut (pas d'enveloppe ni de structure binaire) |
| Syntaxe des lignes | Une entrée par ligne : un chemin de répertoire, une instruction « import <module> », une ligne vide ou un commentaire « # » |
| Déclencheur de traitement | Le module « site » de Python lit tous les fichiers .pth dans site-packages / dist-packages à chaque démarrage de l'interpréteur |
| Effet sur sys.path | Chaque ligne de répertoire valide est ajoutée à sys.path, rendant ses paquets importables sans manipulation explicite du chemin |
| Exécution des lignes d'importation | Les lignes commençant par « import » sont exécutées en tant que code Python au démarrage - un risque de persistance/injection sur les systèmes compromis |
| Taille de fichier typique | Moins de 1 Ko (généralement 1 à 10 lignes) |
| Signature de fichier | Aucune - texte brut sans octets magiques ni en-tête binaire |
| Type MIME | text/plain |
| Emplacement de fichier requis | Doit résider dans un répertoire analysé par le module site : site-packages, dist-packages ou la racine de l'installation Python |
| Stabilité du format | Inchangé depuis Python 1.5.2 (avril 1999) ; pas de champ de version ; entièrement rétrocompatible |
| OS associé | Windows, macOS, Linux - partout où Python s'exécute |
| Collision de noms | .pth est également utilisé par PyTorch pour les fichiers de points de contrôle de modèles binaires - un format entièrement différent distingué par le contenu et l'emplacement du fichier |
| Publié | Python 1.5.2 (1999) - site module formalised .pth processing |
| Dernière version | No versioning - format unchanged; behaviour documented in Python 3 'site' module |
| Standard ouvert | Oui · libre de droits |
| Spécification | docs.python.org |
Conversions PTH
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers PTH.