ホームページ >バックエンド開発 >Python チュートリアル >Python の `-m` スイッチの目的は何ですか?
編成の基本単位である Python モジュールには、次の 2 つの形式があります。コードモジュールとパッケージモジュール。コード モジュールは実行可能な Python コードで構成されますが、パッケージ モジュールには他のモジュールが含まれるディレクトリが含まれます。
Python は、モジュール名とファイル名の両方として知られる一意の識別子をモジュールに割り当てます。通常、モジュールは Python コードではモジュール名、コマンド ラインではファイル名で識別されます。 Python は、sys.path 変数を使用してモジュール名をファイル名にシームレスに変換します。
Python 2.4.1 で導入された -m スイッチは、もともとコマンドからモジュールを実行できるようにしていました。モジュール名に基づいて行を作成します。これにより、ファイル名を指定する代わりの手段が提供されました。最初の反復では、-m はトップレベルのモジュール名のみをサポートしていました。
PEP 338 では、より複雑なモジュール名表現を処理できるように -m が拡張され、http.server などのネストされたモジュールの実行が可能になりました。さらに、すべての親パッケージ __init__.py ファイルの評価が義務付けられました。
最後の重要な進歩は PEP 366 で実現し、-m に絶対インポートだけでなく明示的な相対インポートもサポートできるようになりました。これは、package 変数を指定されたモジュール名の親モジュールに設定することで実現されました。
その機能にもかかわらず、-m は Python で記述されたモジュールのみを実行できるという制限があります。 (.py ファイル)。 C コンパイルされたコード モジュールはサポートされていません。
Import ステートメントによるモジュール実行:
コマンドライン経由のモジュール実行ファイル名:
モジュール名 (-m) を使用したコマンド ラインによるモジュールの実行:
-m スイッチは、コマンド ラインから Python モジュールを実行するための強力なツールとして機能します。モジュール名をファイル名に変換し、ローカル パッケージを実行し、相対インポートをサポートする機能により、Python コードを管理する便利で汎用性の高い手段が提供されます。 -m は Python ベースのモジュールの実行に制限があるにもかかわらず、Python 開発者にとって依然として貴重な資産です。
以上がPython の `-m` スイッチの目的は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。