使用`-m`的目的是什么?

时间:2017-09-07 18:07:01

标签: python python-3.x

在我看来python -m myscriptpython myscript做同样的事情:运行脚本。

使用-m的目的是什么?感谢。

2 个答案:

答案 0 :(得分:3)

您可以加载模块并将其作为脚本调用。不需要确切的文件名或路径。例如:

python -mjson.tool myfile.json

这将打印myfile.json的格式化版本,并为此加载模块json.tool。 Python会自动搜索此模块。你不需要知道确切的路径。

答案 1 :(得分:3)

在某些情况下,特别是对于非常小的项目,python script.pypython -m script将完全相同。

最大的区别在于您的模块位于包中并具有相对导入。如果您的脚本导入了from .module import some_name之类的内容,则在使用ModuleNotFoundError运行时,您很可能会获得python package/scripy.py。另一方面,python -m package.script将产生您期望的任何输出。