在我看来python -m myscript
和python myscript
做同样的事情:运行脚本。
使用-m
的目的是什么?感谢。
答案 0 :(得分:3)
您可以加载模块并将其作为脚本调用。不需要确切的文件名或路径。例如:
python -mjson.tool myfile.json
这将打印myfile.json
的格式化版本,并为此加载模块json.tool
。 Python会自动搜索此模块。你不需要知道确切的路径。
答案 1 :(得分:3)
在某些情况下,特别是对于非常小的项目,python script.py
和python -m script
将完全相同。
最大的区别在于您的模块位于包中并具有相对导入。如果您的脚本导入了from .module import some_name
之类的内容,则在使用ModuleNotFoundError
运行时,您很可能会获得python package/scripy.py
。另一方面,python -m package.script
将产生您期望的任何输出。