Python の sys.path はどこから初期化されますか?
Python はモジュールとパッケージの堅牢な検索パスを提供するために sys.path を細心の注意を払って作成します。初期化プロセスには、さまざまな手順と考慮事項が含まれます。
sys.path を決定する手順:
-
sys.executable を決定する: Python は次のことを識別します。オペレーティング システムからの絶対パス。このパスは sys.executable になります。
-
sys.exec_prefix と sys.prefix:
- を確立します。同じまたは親の pyvenv.cfg を確認します。 sys.executable のディレクトリ。
- 設定されたホーム値または sys.executable のディレクトリを sys.prefix として使用します。
- PYTHONHOME 環境変数を調べます。
- ランドマークを検索しますファイル (例: lib/python/os.py) を使用して sys.exec_prefix と sys.prefix を決定します。
-
sys.path を設定します:
- スクリプト ディレクトリを sys.path に追加します (Linux/Mac の場合)。
- PYTHONPATH の内容を含めます。
- Python zip ファイルを追加します。
- 関連するレジストリ キーからのパスを含めます (Windows のみ、pyvenv.cfg で applocal = true でない場合)。
-
コンパイル時と動的値:
- PYTHONPATH マクロで指定されたパス (sys.prefix に相対) を追加します。
- sys.exec_prefix (Linux/Mac の場合) または sys.prefix ディレクトリ (Windows の場合) を含めます).
-
フォールバック プレフィックスの決定:
- sys.prefix を決定できなかった場合は、sys.prefix 内で動的に検索します。 sys.path.
-
サイト パッケージ インポート:
- サイト モジュールをインポートします。これにより、sys.path ベースのデータがさらに設定されます。 sys.prefix および sys.exec_prefix.
以上がPython の `sys.path` はどのように初期化されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。