Python命令中的 -m 参数
首先看一下python –help里的帮助文档
$ python --help |
-m mod run library module as a script (terminates option list)
“mod“是module的缩写,即“-m“选项后面的内容是 module(模块),其作用是把模块当成脚本来运行。
“terminates option list”意味着“-m”之后的其它选项不起作用,在这点上它跟“-c”是一样的,都是“终极选项”。官方把它们定义为“接口选项”(Interface options),需要区别于其它的普通选项或通用选项。
-m 选项的几个典型用法
1、一行命令实现一个简单的HTTP服务
python -m http.server 8000 |
执行后,在本机打开 “http://localhost:8000”, 或者在局域网内的其它机器上打开 “http://本机ip:8000” ,就能访问到执行目录下的内容。
2、python -m pydoc -p 8000
与第一个类似,需要一行命令“python -m pydoc -p 8000”,就能生成 HTML 格式的官方帮助文档,可以在浏览器中访问。
3、python -m pdb xxx.py
执行 pdb 的调试命令“python -m pdb xxx.py”,以调试模式来执行“xxx.py”脚本
4、python -m timeit "'-'.join(map(str, range(100)))"
测试代码运行时间,多对比一些代码,可以直观的看出代码的效率差异。以此来优化自己的代码。
5、python -m pip install ...
可能我们已经习惯用“ pip install … “来安装第三方库, 但是,Python 的核心开发者、第一届指导委员会五人成员之一的 Brett Cannon 专门写了一篇博客《Why you should use “python -m pip”》,提出应该使用“python -m pip”的方式,并做了详细的解释。
他的主要观点是:在存在多个 Python 版本的环境中,这种写法可以精确地控制三方库的安装位置。例如用“python3.8 -m pip”,可以明确指定给 3.8 版本安装,而不会混淆成其它的版本。
6、python -m virtualenv env
创建项目的虚拟环境,前提是已经用“python -m install virtualenv “安装过这个库了。