美文网首页
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