Python中-m参数与直接运行脚本的区别

橘子海
橘子海
发布时间:2026-10-14 | 4人浏览过
原创

本文深入解析Python中-m参数的作用,对比python -m与直接运行.py文件的区别。重点说明sys.path路径差异、模块搜索机制及-m支持的特殊语法,帮助开发者正确使用模块作为脚本运行。

Python -m参数与直接运行的区别

在Python开发中,理解python -m与直接运行脚本的区别至关重要。

-m参数的核心含义是将指定的库或模块当作独立的脚本来执行。

通常情况下,我们执行Python脚本的命令格式为python file.py。

这种常规的执行方式非常普遍,以至于部分开发者可能并不了解 -m 参数的具体用途。

查阅官方help文档可知,对 -m 的解释是:将文件看作脚本来执行。

那么,究竟什么是“当成脚本来执行”?我们通过具体示例来验证。

首先编写一个简单的测试脚本 bar.py。


import sys
 
print('sys.path len is %s.' % sys.path.__len__())
for path in sys.path:
  print(path)

接着分别执行两种不同的命令,观察结果差异。

执行命令:python -m bar(注意:这里写的是bar,不是bar.py,这是一个常见的坑)。

从执行结果可以看出,第一行也就是最后添加进sys.path的环境变量是空字符串,空 代表的含义是当前文件夹,即你执行命令时所在的目录。

另一种执行方式是:python bar.py。

此时,sys.path的第一行显示为绝对路径,即文件所在的目录,而非脚本当前执行的目录。

使用注意事项

需要特别注意以下几点:

1. -m参数后面不能直接跟 .py 后缀,其效果相当于 import bar。

2. -m支持 . 点号语法,例如可以使用 python -m http.server 启动一个内置的Web服务器。

Python -m的具体含义

接下来详细解析python -m的具体含义。

简单来说,它的作用是执行某个模块下的文件。

python -m后面跟随的参数形式通常是模块名.文件名。

这允许将模块以脚本的方式运行,与直接运行python file.py的方式存在区别。

使用这个命令时,Python会在library path中搜索要执行的py文件,而不仅仅局限于current library(当前库)。

在Python的参数说明文档中对此有明确解释:

run library module as a script.(将库模块作为脚本运行)。

总结上述内容。

到此这篇关于为什么使用Python -m的文章就介绍到这了,更多相关python -m 和 python 的区别内容请搜索本站以前的文章或继续浏览下面的相关文章,希望大家以后多多支持本站!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表