Python のコマンドライン引数で使用される -m の意味は？


Pythonのコマンドで使用される `-m` が意味するものっていったい何なんでしょうか。

例えば、仮想環境を作るときに使う以下のコマンドで使用されている `―m` のことです。

[code]

    $ python3 -m venv [newenvname]
    
[/code]

具体的な意味などあれば教えてください。




`-m モジュール名` で指定することでそのモジュールを実行します。  
パッケージ名を指定した場合はそのパッケージの`__main__.py`を実行します。

例えば  
`$ python3 -m venv [newenvname]`  
の場合は
venvパッケージの`__main__.py`を実行することになります。<https://github.com/python/cpython/blob/3.9/Lib/venv/__main__.py>

また別の例としてtimeitモジュールの場合は  
`$ python3 -m timeit -h`  
としたときに、timeit.pyを実行することになります。  
<https://github.com/python/cpython/blob/3.9/Lib/timeit.py>

この `-m` の意味としては、  
「モジュール名(またはパッケージ名)の指定で実行できるため、どこにインストールしているか知らなくてもファイルのパスを指定することなく実行できる」ことです。

もし `-m` が使えなかったら、「Pythonをインストールしたパス配下のlib/venv/__main__.pyを実行して」みたいになります。

`$ python3 (Pythonをインストールしたパス)/lib/venv/__main__.py`




`-m モジュール名` で指定することでそのモジュールを実行します。  
パッケージ名を指定した場合はそのパッケージの`__main__.py`を実行します。

例えば  
`$ python3 -m venv [newenvname]`  
の場合は
venvパッケージの`__main__.py`を実行することになります。<https://github.com/python/cpython/blob/3.9/Lib/venv/__main__.py>

また別の例としてtimeitモジュールの場合は  
`$ python3 -m timeit -h`  
としたときに、timeit.pyを実行することになります。  
<https://github.com/python/cpython/blob/3.9/Lib/timeit.py>

この `-m` の意味としては、  
「モジュール名(またはパッケージ名)の指定で実行できるため、どこにインストールしているか知らなくてもファイルのパスを指定することなく実行できる」ことです。

もし `-m` が使えなかったら、「Pythonをインストールしたパス配下のlib/venv/__main__.pyを実行して」みたいになります。

`$ python3 (Pythonをインストールしたパス)/lib/venv/__main__.py`

