PTH ファイル形式とは?
.pthファイルは、Pythonの組み込みsiteモジュールによってインタプリタの起動時に処理されるプレーンテキストのパス設定ファイルです。ファイル内の各行は、sys.pathに追加するディレクトリパス、またはPythonコードとして実行されるimport文のいずれかです。空行および#で始まる行はコメントとして扱われ、無視されます。
.pthファイルは、siteモジュールがスキャンするディレクトリ(通常はsite-packagesまたはdist-packages)に配置する必要があります。これにより、インタプリタの起動時にPythonが自動的にそれらを見つけます。pipやcondaなどのパッケージマネージャは、インタプリタのインストール自体を変更せずに、インストールされたパッケージをPythonパスに登録するために.pthファイルを使用します。
このフォーマットはPython 1.5.2(1999年)以来安定しており、バージョン情報は含まれていません。ファイルはプレーンなUTF-8(またはASCII)テキストで、通常は数行程度、1 KB未満です。
重要なセキュリティ上の注意:importで始まる行は起動のたびにPythonコードとして実行されるため、site-packagesに悪意のある.pthファイルが配置されると、コードの永続的な実行が可能になります。これは、侵害されたシステムにおける既知のインジェクションベクターです。
なお、.pthはPyTorchがシリアル化されたモデルチェックポイント(Pythonのパス設定とは全く無関係なバイナリ形式)に使用する拡張子でもあります。ファイルの場所と内容が、これら2つの用途を区別するための確実な方法です。
セキュリティと安全性
リスク: MEDIUMPythonの.pthファイルはプレーンテキストであり、それ自体で実行されることはありません。しかし、「import」で始まる行はPythonが起動するたびにPythonコードとして実行されます。site-packagesに配置された悪意のある.pthファイルは、侵害されたシステムにおける既知の永続化・コードインジェクション手法です。Pythonのsite-packages内に予期しない.pthファイルを見つけた場合は、信頼する前に内容を検査してください。健全なシステムでは、すべての.pthファイルは正当にインストールされたパッケージに対応しているはずです。
形式の詳細
概要- PyTorchモデルチェックポイント - PyTorchは慣習的にモデルの状態辞書を.pthファイル(バイナリのPickle/ZIP形式)として保存しますが、これはPython自身の.pthパスファイルと衝突するため、現在は.ptが推奨されています。
- VisualGPSXPパスファイル - VisualGPSXP(Windows用のレガシーGPSユーティリティ)はGPSトラックパスを.pthとして保存していましたが、ソフトウェアは廃止されており、この用途は極めて稀です。
PTH ファイルを開くプログラム
技術的詳細
詳細仕様| エンコーディング | プレーンテキスト、UTF-8またはASCII |
| コンテナ | プレーンテキスト(ラッパーやバイナリ構造なし) |
| 行構文 | 1行につき1エントリ:ディレクトリパス、「import <module>」文、空行、または「#」コメント |
| 処理トリガー | Pythonの「site」モジュールが、インタプリタの起動ごとにsite-packages / dist-packages内のすべての.pthファイルを読み込む |
| Sys.pathへの影響 | 有効な各ディレクトリ行がsys.pathに追加され、明示的なパス操作なしでそのパッケージがインポート可能になる |
| Import行の実行 | 「import」で始まる行は起動時にPythonコードとして実行される。これは侵害されたシステムにおける永続化/インジェクションのリスクとなる |
| 一般的なファイルサイズ | 1 KB未満(通常1〜10行) |
| ファイルシグネチャ | なし - マジックバイトやバイナリヘッダーのないプレーンテキスト |
| MIMEタイプ | text/plain |
| 必要なファイル配置場所 | siteモジュールがスキャンするディレクトリ(site-packages、dist-packages、またはPythonのインストールルート)に存在する必要がある |
| フォーマットの安定性 | Python 1.5.2(1999年4月)以来変更なし。バージョンフィールドはなく、完全な後方互換性がある |
| 関連OS | Windows, macOS, Linux - Pythonが動作するすべての環境 |
| 名前の衝突 | .pthはPyTorchのバイナリモデルチェックポイントファイルにも使用される。ファイルの内容と場所によって区別される全く別のフォーマット |
| リリース日 | Python 1.5.2 (1999) - site module formalised .pth processing |
| 最新バージョン | No versioning - format unchanged; behaviour documented in Python 3 'site' module |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | docs.python.org |
PTH の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。PTH ファイルについて最初の質問をしてみましょう。