我喜欢使用我的包底部的以下代码在python中测试我的包:
if __name__ == "__main__":
sys.exit(main())
其中main()
是我在上面定义的函数。现在我的问题是:
我需要在main中导入额外的包来测试我的模块,如果用户只是导入我的模块(即来自另一个脚本),则不需要导入。如果我的main显式运行,有没有办法只导入这些额外的包?当我的包刚刚导入时(即来自另一个脚本),这些额外的包不会被导入。
答案 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
中详细讨论