質問: Pythonのコマンドで使用される `-m` が意味するものっていったい何なんでしょうか。 例えば、仮想環境を作るときに使う以下のコマンドで使用されている `―m` のことです。 ``` $ python3 -m venv [newenvname] ``` 具体的な意味などあれば教えてください。
回答: ドキュメントに書いてありますよ。おそらく module の最初の文字を取ったものでしょう。 1.1.1. インターフェイスオプション - 1. コマンドラインと環境 > > * `-m モジュール名` として Python モジュールパスにあるモジュールを指定された場合、そのモジュールをスクリプトとして実行します。 > > > -m > > sys.path から指定されたモジュール名のモジュールを探し、その内容を __main__ モジュールとして実行します。 > > 引数は module 名なので、拡張子 (.py) を含めてはいけません。モジュール名は有効な Python の絶対モジュール名 (absolute module name) であるべきですが、実装がそれを強制しているとは限りません (例えば、ハイフンを名前に含める事を許可するかもしれません)。 > > ...以下続くが省略 > > > 使用しているOS上のPATHではなく、Pythonのモジュールパスに存在するモジュールを指定して実行するためのものでしょう。 例えば pip はインストールしたOS上でPATHにあるディレクトリにあれば実行できるものと、Pythonのモジュールパスに存在するものの2つがあり、だいたいは pip とパラメータだけで動作しますが、pip自身を新しい版数にアップグレードする場合は、その単独で動作するプログラムも上書きして更新する必要があるために、Pythonモジュールを呼び出す形の `Python -m pip install --upgrade pip` として実行させます。