使用导入运行一系列python模块

时间:2016-08-27 23:56:06

标签: python package

我在标准包结构中编写了一堆.py个文件,每个子目录中都有脚本和__init__.py。其中许多.py模块使用“绝对导入”相互导入,例如

from  mypkg.utils.functions import transform

每个人都有一个run功能,并且

if __name__ == '__main__':
    run()

我想运行一个命令行命令,它将是一系列这些模块。我目前正在使用形式为

的shell脚本
cd /parent_of_mypkg/
python -m mypkg.build.run_first
python -m mypkg.build.run_second    
python -m mypkg.build.run_third
python -m mypkg.build.run_fourth

目前,如果run_second出现错误,它会跳到run_third,但我希望它停止并提醒我异常。

this answer中提到的一种方法是

import mypkg.build.run_first as run_first
import mypkg.build.run_second as run_second
import mypkg.build.run_third as run_third
import mypkg.build.run_fourth as run_fourth
run_first.main()
run_second.main()
run_third.main()
run_fourth.main()

但这看起来有点麻烦和重复。在Python中有一个很好的方法吗?

1 个答案:

答案 0 :(得分:0)

在阅读您关联的帖子后,您的回答就在那里。 我引用:

最简单的方法是为每个模块编写一个main函数并连续运行所有主要函数。

如果经验丰富的Python开发人员告诉您,最简单的方法就是您当前正在这样做的方式(使用您已经展示的示例),那么他可以说#&# 39;对了,那就怎么做。

坚持你正在做的事情。它既麻烦又重复,但也很简单,实际上也有效。如果您不相信,我确定PyPI上的某个模块可以帮助您,尽管复杂性可能是不必要的。