仅在main在python包中运行时导入包

时间:2012-10-26 07:33:18

标签: python import packages main

我喜欢使用我的包底部的以下代码在python中测试我的包:

if __name__ == "__main__":
    sys.exit(main())

其中main()是我在上面定义的函数。现在我的问题是:

我需要在main中导入额外的包来测试我的模块,如果用户只是导入我的模块(即来自另一个脚本),则不需要导入。如果我的main显式运行,有没有办法只导入这些额外的包?当我的包刚刚导入时(即来自另一个脚本),这些额外的包不会被导入。

2 个答案:

答案 0 :(得分:4)

为什么不直接将导入语句放在main()的正文中?应该这样做。

def main():
   import my_module # import ONLY if main is called
   # code

答案 1 :(得分:3)

在Python中,您可以在代码中的任何位置放置导入。

所以你可以:

if __name__ == "__main__":
    import <package> # place your imports here
    sys.exit(main())

“懒惰导入”在this question

中详细讨论