Python

Pythonコマンドを実行する際の -m について

この記事では、Pythonコマンド を実行する際に記述されている -m について解説します。

Pythonコマンドを使うときに -m が記述されているのを見たことあると思います。例えば、pip を実行するときなんかに使われます。

python -m pip install パッケージ名

それでは、-m の意味と使うタイミングを解説します。

-m はオプションである!

-m は、ターミナルやコマンドプロンプトなどで Pythonコマンド を実行する際に使用するオプションの一種です。

このようなオプションは、インターフェイスオプション と呼ばれ、-m の他にも様々なものが用意されています。

気になる方は以下の記事で参照してください。

Linkインターフェイスオプション - コマンドラインと環境 — Python ドキュメント

-m の意味

-m は、Pythonのモジュールやパッケージを実行するためのオプションです。

python -m <module-name>

上記のように実行することで指定された <module-name> のモジュールを sys.path から検索し、__main__ モジュールとして実行します。

例えば、test.py というモジュールを実行したい場合は 以下のようにします。

python -m test

モジュール名には、拡張子(.py)を付けないように注意してください。

-m の使い所

sys.path からモジュールを検索できて何が嬉しいかというと、標準ライブラリなどを実行する際にいちいち長ったらしいパスを指定せずに、モジュール名のみで実行できることです。

例えば、zipfileモジュール では、-c コマンドオプションを指定し、その後ろに zipファイル、ソースを指定することで指定した zipファイル にソースをまとめることができます。

python3 -m zipfile -c test.zip main.py module.py

上記サンプルでは test.zip に main.py と module.py をまとめることができます。

これを -m を使わずに実行しようとすると zipfileモジュール が格納されているパスを指定しなければならないのでとてもめんどくさい。

python3 /Users/ユーザー名/.pyenv/versions/3.10.0/lib/python3.10/zipfile.py -c test.zip main.py module.py 

それを省略できるようにしたのが -mオプションです。

まとめ

この記事では、Pythonコマンド を実行する際に -m について解説しました。

-m は、Pythonコマンドのオプションで標準ライブラリなどを実行するときに楽 ということだけ覚えておきましょう!

自作モジュールをコマンドとして扱う方法は別記事で紹介します。

それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ

『DMM WEBCAMP COMMIT』