Python __初始化和导入依赖项

Python __初始化和导入依赖项,python,Python,检查模块的\uuuu init\uuuuuuuuupy文件中模块的依赖关系是一个好主意还是一个好编程实践 因此,如果我的\uuuu init\uuuu.py文件中有如下内容: import imp modules = set(["numpy", "scipy.spatial.distance"]) for m in modules: try: imp.find_module(m) except ImportError: print("Missing

检查模块的
\uuuu init\uuuuuuuuupy
文件中模块的依赖关系是一个好主意还是一个好编程实践

因此,如果我的
\uuuu init\uuuu.py
文件中有如下内容:

import imp
modules = set(["numpy", "scipy.spatial.distance"])
for m in modules:
    try:
        imp.find_module(m)
    except ImportError:
        print("Missing dependency: " + str(m))

这是一种很好的做法,还是有一种更具python风格的方法来处理这一问题?

如果这些模块对于您的软件包来说是必不可少的,您应该提出一个异常。如果它们不是必需的,则在尝试删除需要它们的功能时公开一些功能标志和/或引发异常,和/或引发警告
print()
是为人类设计的,Python包是为Python代码设计的。您认为这样做比让每个模块直接导入有什么好处?比导入明确多了?错误:没有名为“foo”的模块可以得到-PI喜欢人们对这样的问题进行投票,只是因为这是关于Python的……对于非必要模块或可选模块,我会输出一个警告。请参阅标准库中的
警告
模块。