官方说明

-m: run library module as a script(将模块当作脚本运行)

解释

在 python 中,所谓的模块,其实也是一个由代码组成的普通脚本文件。这些文件通常会提供一些有用的东西,例如函数或者类,然后我们通过 import <module> 导入使用,而且当我们引入模块的时候,不会产生副作用。但实际上如果我们在 shell 中直接运行这个脚本文件,很有可能会看到有副作用产生。在文件内部,我们一般通过下面的代码来区分当前脚本,是作为模块导入,还是作为脚本直接运行。

if __name__ == '__main__':
    print('模块直接运行');

当文件作为脚本直接运行时,这段代码会产生副作用,输出字符串“模块直接运行”;

当文件作为模块被导入时,不会产生副作用,不输出字符串“模块直接运行”;

回到正题,当我们知道一个模块的名字,但不知道它的路径时,我们可以通过 -m 参数,在 shell 中将该模块当作脚本运行,例如:

python -m module_name

事实上,如果我们知道模块的完整路径(此处假设为"/path/to/module.py"),上述命令的效果,以下面的命令等同

python /path/to/module.py

参考

https://www.jianshu.com/p/323fc9a1d7d2