-m オプションを使用した場合と使用しない場合の Python コードの実行
Python インタープリターには、ライブラリ モジュールをスクリプトとして実行するための -m オプションが用意されています。このオプションを python -m module_name とともに使用すると、指定されたライブラリ モジュールをスクリプトとしてインポートして実行します。ただし、python script_name.py などのスクリプトを直接 (-m オプションなしで) 実行する場合、インタープリターはそれをスタンドアロン スクリプトとして扱います。
呼び出しの違い
これら 2 つの呼び出しの主な違いは、Python がパッケージの実行を処理する方法にあります。 -m オプションを使用しない場合、スクリプトは直接実行され、スクリプト内で行われるパッケージのインポートはスクリプトのディレクトリに相対的なものになります。対照的に、-m オプションは、指定されたモジュールまたはパッケージをインポートしてスクリプトとして実行し、パッケージを直接呼び出すことができるようにします。
package Variable
モジュールが属するパッケージの名前を含む __package__ 変数は、-m オプションの使用によって影響を受けます。スクリプトが直接実行される場合、スクリプトはパッケージ内で実行されないため、__package__ は None に設定されます。ただし、パッケージまたはモジュールを -m で実行すると、__package__ はパッケージの名前に設定されます。
main Module
Python の __main__ モジュールは、スクリプトが実行されるグローバル名前空間を指します。 -m オプションの有無にかかわらず、__name__ 変数は常に __main__ モジュールを参照します。パッケージを -m で実行するときに、パッケージに __main__.py モジュールが含まれている場合は、パッケージ自体の代わりにそのモジュールが実行されます。
実際的な考慮事項
-m を使用する利点:
-m を使用する場合の短所:
推奨事項
パッケージの一部ではないスクリプトを実行する場合は、直接呼び出し (-m なし) を使用するだけで十分です。ただし、パッケージまたはパッケージ内のモジュールを実行する場合、意図したスコープ内で適切なインポート処理と実行を保証するために -m オプションが不可欠です。
以上がPython コードの実行: -m オプションを使用するか使用しないでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。