-m を使用した Python コード実行の呼び出しの違いについて
Python インタープリターには、ライブラリ モジュールを実行できる -m オプションが用意されています。 __main__ モジュール内のスクリプトとして。このアプローチは、-m オプションを使用せずにスクリプトを直接実行する場合とは異なり、特定の区別と影響が生じます。
実際的な違い
-m を使用する場合、Python はパッケージを異なる方法で管理します。 -m を指定せずにパッケージを実行しようとすると、インタープリタはそれを通常のスクリプトとして扱います。対照的に、-m を使用すると、パッケージをインポートでき、相対インポートではそのパッケージが開始点として正しく考慮されます。
たとえば、a.py の次のコードを考えてみましょう:
<code class="py">if __name__ == "__main__": print(__package__) print(__name__)</code>
python a.py を実行すると次の結果が得られます:
None __main__
一方、python -m a を使用すると次の結果が得られます:
"" __main__
ここで、最初のケースでは、ファイルが次のとおりであるため、__package__ 変数は空になります。スクリプトとして実行されます。 -m を指定すると、モジュールがパッケージ内にないため、__package__ は空の文字列に設定されます。
package と name
__package__ の場合:パッケージ実行の影響
パッケージの実行-m を指定したスクリプトには、パッケージ内に __main__.py モジュールが必要です。このモジュールは、Python が -m スイッチを使用してパッケージを実行するときのエントリ ポイントとして機能します。以上が-m を使用して Python コードを実行する場合の呼び出しの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。