前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python -m 和 python 直接运行的区别

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

作者头像
狼啸风云
修改2022-09-03 19:49:59
1.5K0
修改2022-09-03 19:49:59
举报

一分钟版本

代码语言:javascript
复制
>>> python xxx.py  # 直接运行
>>> python -m xxx # 相当于import,叫做当做模块来启动

主要区别在于sys.path不同

  • 直接运行会将该脚本所在目录添加至sys.path
  • 当做模块启动则会将当前运行命令的路径添加至sys.path

实际应用

假设我们有如下文件结构

代码语言:javascript
复制
package1/
    |--__init__.py
    |--mod1.py
package2/
    |--__init__.py
    |--run.py

run.py中import了mod1.py

代码语言:javascript
复制
# run.py
from package1 import mod1

代码语言:javascript
复制
>>> python run.py # 失败,提示找不到package1

# 切换到package2 所在目录
>>> python -m package2.run # 成功
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一分钟版本
  • 实际应用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档