要分清这几个的区别与使用条件,实际测试一下是最准确的。

  1. 一个主模块用来运行,一个子模块用来被主模块调用
  2. 主模块路径:

/Users/stephen/Documents/code/test_dir/01test

  1. 子模块路径:

/Users/stephen/Documents/code/test_dir/02test

  1. 运行模块的路径:

/Users/stephen/Documents/code/test_dir/01test/001_test

  • 子模块 submodule.py

    1. import os
    2. import sys
    3. def child_test():
    4. print('sub os.getcwd():{}'.format(os.getcwd()))
    5. print('sub sys.path[0]:{}'.format(sys.path[0]))
    6. print('sub sys.argv[0]:{}'.format(sys.argv[0]))
    7. print('sub __file__:{}'.format(__file__))
    8. if __name__ == '__main__':
    9. chid_test()
  • 主模块 mainmodule.py
    “`py
    import os
    import sys
    import submodule
    def main():
    print(‘main os.getcwd():{}’.format(os.getcwd()))
    print(‘main sys.path[0]:{}’.format(sys.path[0]))
    print(‘main sys.argv[0]:{}’.format(sys.argv[0]))
    print(‘main file:{}’.format(file))

    submodule.child_test()

if name == ‘main‘:
main()

  1. ## 目录结构

├── 01test
│ ├── 001_test # 运行目录
│ └── mainmodule.py # 主模块
└── 02test
└── submodule.py # 被调用模块

  1. ## ok 来看看结果

Traceback (most recent call last):
File “../mainmodule.py”, line 3, in

版权声明:本文为Mr-a2z原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/Mr-a2z/p/8746658.html