-m开关的用途是什么?
你能向我解释一下通话之间的区别吗?
python -m mymod1 mymod2.py args
和
python mymod1.py mymod2.py args
似乎在这两种情况下mymod1.py
和sys.argv
是
['mymod1.py', 'mymod2.py', 'args']
那么什么是-m
开关?
PEP 338 Rationale
部分的第一行说:
Python 2.4添加了命令行开关-m,允许模块使用Python模块名称空间作为脚本执行。 激励的例子是标准的库模块,如pdb和profile,Python 2.4的实现对于这个有限的目的是很好的。
所以你可以这样在Python的searchpath中指定任何模块,而不仅仅是当前目录中的文件。 你是正确的python mymod1.py mymod2.py args
具有完全相同的效果。 Scope of this proposal
部分的Scope of this proposal
的第一行指出:
在Python 2.4中,使用-m的模块就像在命令行上提供的一样。
使用-m
更多是可能的,就像使用模块是一个包的一部分,等等。这就是PEP 338的其余部分。 阅读更多信息。