美文网首页
python -m 运行和直接运行的区别

python -m 运行和直接运行的区别

作者: Jarkata | 来源:发表于2021-01-16 20:59 被阅读0次

开门见山:

区别:sys.path不同
  • 直接运行会将该脚本所在目录添加至sys.path
  • 当做模块启动则会将当前运行命令的路径添加至sys.path
>>> python xxx.py  # 直接运行
>>> python -m xxx # 当做模块来启动

实际应用

假设我们有如下文件结构

package1/
    |--__init__.py
    |--mod1.py
package2/
    |--__init__.py
    |--run.py

在run.py中import了mod1.py

# run.py
from package1 import mod1

>>> python run.py # 失败,提示找不到package1
 
# 切换到package2 所在目录
>>> python -m package2.run # 成功

相关文章

网友评论

      本文标题:python -m 运行和直接运行的区别

      本文链接:https://www.haomeiwen.com/subject/ophoaktx.html