目次
コマンドライン Python 実行における "-m" の多面的な役割
1. Modulenames によるモジュールの実行
2」と入力するだけです。 sys.path への統合
3.相対インポートのサポート
呼び出しメソッドの比較
結論
ホームページ バックエンド開発 Python チュートリアル Python モジュールを実行するための `python -m` と `python ` の主な違いは何ですか?

Python モジュールを実行するための `python -m` と `python ` の主な違いは何ですか?

Nov 29, 2024 pm 10:54 PM

What are the Key Differences Between `python -m` and `python ` for Executing Python Modules?

コマンドライン 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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

HTMLを解析するために美しいスープを使用するにはどうすればよいですか? HTMLを解析するために美しいスープを使用するにはどうすればよいですか? Mar 10, 2025 pm 06:54 PM

HTMLを解析するために美しいスープを使用するにはどうすればよいですか?

Pythonでの画像フィルタリング Pythonでの画像フィルタリング Mar 03, 2025 am 09:44 AM

Pythonでの画像フィルタリング

Pythonでファイルをダウンロードする方法 Pythonでファイルをダウンロードする方法 Mar 01, 2025 am 10:03 AM

Pythonでファイルをダウンロードする方法

Pythonを使用してテキストファイルのZIPF配布を見つける方法 Pythonを使用してテキストファイルのZIPF配布を見つける方法 Mar 05, 2025 am 09:58 AM

Pythonを使用してテキストファイルのZIPF配布を見つける方法

Pythonを使用してPDFドキュメントの操作方法 Pythonを使用してPDFドキュメントの操作方法 Mar 02, 2025 am 09:54 AM

Pythonを使用してPDFドキュメントの操作方法

DjangoアプリケーションでRedisを使用してキャッシュする方法 DjangoアプリケーションでRedisを使用してキャッシュする方法 Mar 02, 2025 am 10:10 AM

DjangoアプリケーションでRedisを使用してキャッシュする方法

TensorflowまたはPytorchで深い学習を実行する方法は? TensorflowまたはPytorchで深い学習を実行する方法は? Mar 10, 2025 pm 06:52 PM

TensorflowまたはPytorchで深い学習を実行する方法は?

Natural Language Toolkit(NLTK)の紹介 Natural Language Toolkit(NLTK)の紹介 Mar 01, 2025 am 10:05 AM

Natural Language Toolkit(NLTK)の紹介

See all articles