python -m的用处

文章讨论了Python中直接运行脚本与使用`python-m`命令的区别,主要体现在`sys.path`的差异。`sys.path`影响模块的查找路径。在运行包含导入的脚本时,确保被导入模块的路径在`sys.path`中是关键。例如,在p1和p2目录结构下,直接运行`p2/run.py`会因找不到模块而失败,而通过`python-mp2.run`可以成功执行,因为它正确地添加了模块路径。
摘要由CSDN通过智能技术生成

python -m xxx.py 和python xxx.py 有什么区别

这是两种加载py文件的方式:

叫做直接运行(python xxx.py)

把模块当作脚本来启动(python -m xxx.py)

不同的加载py文件的方式,主要是影响——sys.path 这个属性。sys.path 就相当于liunx中的PATH

这个特性有什么用呢

# 目录结构如下
p1/
    __init__.py
    m.py
p2/
    __init__.py
    run.py
# run.py 内容如下
import sys
from p1 import m
print(sys.path)

如何才能启动run.py文件?

直接启动(失败)

>>>python p2/run.py
#ImportError: No module named package

以模块方式启动(成功)

>>>python -m p2.run

当需要启动的py文件引用了一个模块。你需要注意:在启动的时候需要考虑sys.path中有没有你import的模块的路径!

这个时候,到底是使用直接启动,还是以模块的启动?目的就是把import的那个模块的路径放到sys.path中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值