Co to jest format pliku PTH?
Plik .pth to tekstowy plik konfiguracyjny ścieżki przetwarzany przez wbudowany moduł site języka Python podczas uruchamiania interpretera. Każda linia w pliku jest albo ścieżką do katalogu, którą należy dołączyć do sys.path, albo instrukcją import do wykonania jako kod Python. Puste linie i linie zaczynające się od # są traktowane jako komentarze i ignorowane.
Pliki .pth muszą znajdować się w katalogu skanowanym przez moduł site - zazwyczaj site-packages lub dist-packages - dzięki czemu Python znajduje je automatycznie przy starcie interpretera. Menedżery pakietów, takie jak pip i conda, używają plików .pth do rejestrowania zainstalowanych pakietów w ścieżce Python bez modyfikowania samej instalacji interpretera.
Format ten jest stabilny od wersji Python 1.5.2 (1999) i nie zawiera informacji o wersji. Pliki są zwykłym tekstem UTF-8 (lub ASCII), zazwyczaj mają tylko kilka linii i rozmiar poniżej 1 KB.
Ważna uwaga dotycząca bezpieczeństwa: ponieważ linie zaczynające się od import są wykonywane jako kod Python przy każdym uruchomieniu, złośliwy plik .pth umieszczony w site-packages umożliwia trwałe wykonywanie kodu - jest to znany wektor wstrzykiwania kodu (injection) w zainfekowanych systemach.
Należy zauważyć, że rozszerzenie .pth jest również używane przez PyTorch dla serializowanych punktów kontrolnych modeli - jest to format binarny całkowicie niezwiązany z konfiguracją ścieżek Python. Lokalizacja i zawartość pliku to wiarygodne sposoby na rozróżnienie tych dwóch zastosowań.
Bezpieczeństwo
RYZYKO: MEDIUMPlik .pth języka Python jest zwykłym tekstem i nie może uruchomić się samodzielnie. Jednak linie zaczynające się od „import” są wykonywane jako kod Python przy każdym uruchomieniu środowiska. Złośliwy plik .pth umieszczony w site-packages to znana technika utrzymywania dostępu i wstrzykiwania kodu w zainfekowanych systemach. Jeśli znajdziesz nieoczekiwany plik .pth w katalogu site-packages, sprawdź jego zawartość przed zaufaniem mu. W zdrowym systemie wszystkie pliki .pth powinny odpowiadać legalnie zainstalowanym pakietom.
Szczegóły formatu
w pigułce- Punkt kontrolny modelu PyTorch - PyTorch konwencjonalnie zapisuje słowniki stanu modeli jako pliki .pth (format binarny Pickle/ZIP); koliduje to z plikami ścieżek Python i obecnie preferowane jest rozszerzenie .pt.
- Plik ścieżki VisualGPSXP - VisualGPSXP (przestarzałe narzędzie GPS dla Windows) zapisywało ścieżki tras GPS jako .pth; oprogramowanie jest nieużywane, a to zastosowanie jest niezwykle rzadkie.
Programy otwierające pliki PTH
Szczegóły techniczne
specyfikacja| Kodowanie | Zwykły tekst, UTF-8 lub ASCII |
| Kontener | Zwykły tekst (brak opakowania lub struktury binarnej) |
| Składnia linii | Jeden wpis na linię: ścieżka do katalogu, instrukcja „import <moduł>”, pusta linia lub komentarz „#” |
| Wyzwalacz przetwarzania | Moduł „site” języka Python odczytuje wszystkie pliki .pth w site-packages / dist-packages przy każdym uruchomieniu interpretera |
| Wpływ na sys.path | Każda prawidłowa linia z katalogiem jest dołączana do sys.path, co umożliwia importowanie zawartych w nim pakietów bez jawnej manipulacji ścieżkami |
| Wykonywanie linii import | Linie zaczynające się od „import” są wykonywane jako kod Python przy starcie - ryzyko trwałości/wstrzykiwania kodu w zainfekowanych systemach |
| Typowy rozmiar pliku | Poniżej 1 KB (zazwyczaj 1-10 linii) |
| Sygnatura pliku | Brak - zwykły tekst bez magicznych bajtów czy nagłówka binarnego |
| Typ MIME | text/plain |
| Wymagana lokalizacja pliku | Musi znajdować się w katalogu skanowanym przez moduł site: site-packages, dist-packages lub w katalogu głównym instalacji Python |
| Stabilność formatu | Niezmieniony od wersji Python 1.5.2 (kwiecień 1999); brak pola wersji; pełna kompatybilność wsteczna |
| Powiązany system operacyjny | Windows, macOS, Linux - wszędzie tam, gdzie działa Python |
| Kolizja nazw | Rozszerzenie .pth jest również używane przez PyTorch dla binarnych plików punktów kontrolnych modeli - zupełnie inny format rozróżniany po zawartości i lokalizacji |
| Wydano | Python 1.5.2 (1999) - site module formalised .pth processing |
| Najnowsza wersja | No versioning - format unchanged; behaviour documented in Python 3 'site' module |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | docs.python.org |
Konwersje PTH
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki PTH.