专栏首页中科院渣渣博肆僧一枚python -m 和 python 直接运行的区别

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

一分钟版本

>>> python xxx.py  # 直接运行
>>> python -m xxx # 相当于import,叫做当做模块来启动

主要区别在于sys.path不同

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

实际应用

假设我们有如下文件结构

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 # 成功

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Cython入门

    setup这一年也是遇到了很多次,随着python编程学习的不断深度对于python的了解也不断在增加,这里做一次简单的小节。

    于小勇
  • python的构建工具setup.py的方法使用示例

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    于小勇
  • tf.app

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    于小勇
  • django创建项目

    Django的MTV模式本质上与MVC模式没有什么差别,也是各组件之间为了保持松耦合关系,只是定义上有些许不同,Django的MTV分别代表:

    py3study
  • 在python中运行命令行命令的四种方案

    本文由腾讯云+社区自动同步,原文地址 https://stackoverflow.club/article/run_shell_command_in_pytho...

    羽翰尘
  • Python工程的文档结构

    Python工程的文档结构,可以参考https://stackoverflow.com/questions/193161/what-is-the-best-pr...

    SeanCheney
  • 软件目录结构规范

    超蛋lhy
  • 多年经验的大牛总结出来的Python案例超详细

    This batch renames a group of files in a given directory, once you pass the curr...

    QQ1622479435
  • (原创)python爬取慕课网视频

    七夜安全博客
  • 还是用RSeQC对比对后的转录组数据做一下质控

    那个时候写教程,以软件安装,软件input和output为主,因为觉得新手最容易纠结的就是这些了,但是现在回过头来看,软件安装已经成了小菜一碟,对各种bam/s...

    企鹅号小编

扫码关注云+社区

领取腾讯云代金券