Python モジュールを実行するための `python -m` と `python ` の主な違いは何ですか?
Nov 29, 2024 pm 10:54 PMコマンドライン Python 実行における "-m" の多面的な役割
一般的に、 python -m mymod1 mymod2.py 引数と python mymod1 が観察されます。 py mymod2.py args コマンドは両方とも、一致する mymod1.py を実行します。 sys.argv。ただし、-m スイッチは、ファイル名からモジュール名への変換を超える、さまざまな追加機能を提供します。
1. Modulenames によるモジュールの実行
-m フラグは、ファイル名ではなくモジュール名を使用してコマンド ラインから Python モジュールを直接呼び出す代替方法として機能します。これは、ファイル名が不明な標準ライブラリ モジュールやサードパーティ パッケージを実行する場合に特に便利です。たとえば、http.server モジュールを実行するには、「python -m http.server.
2」と入力するだけです。 sys.path への統合
-m スイッチを使用すると、モジュールが呼び出されるだけでなく、現在のディレクトリが含まれるように sys.path が変更されます。これは、Python mymod1.py を使用する場合には存在しない機能です。これにより、インストールを必要とせずに、相対インポートを含むローカル パッケージを実行できるようになります。
3.相対インポートのサポート
現在のディレクトリを sys.path に追加することに加えて、-m を使用すると、相対インポートを使用してモジュールを実行できます。これは、__package__ 変数を指定されたモジュール名の親モジュールに設定することで実現され、相対インポートが意図したとおりに機能できるようになります。
呼び出しメソッドの比較
3 つの間の違いを説明するにはPython モジュールを呼び出す方法については、次の表にキーを示します属性:
Invocation Method | sys.path Modification | name | package |
---|---|---|---|
import <modulename> | None | Absolute form of <modulename> | Immediate parent package |
python <filename> | Includes final directory in <filename> | '__main__' | None |
python -m <modulename> | Includes current directory | '__main__' | Immediate parent package |
結論
Python の -m スイッチは、単にファイル名をモジュール名に変換するだけではない幅広い機能を提供する多用途ツールです。コマンド ラインからモジュールを実行し、相対インポートを処理し、ローカル パッケージを sys.path に統合するシームレスな方法を提供します。これは、ローカルと外部の両方で Python モジュールを扱う開発者にとって貴重なツールになります。
以上がPython モジュールを実行するための `python -m` と `python ` の主な違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









