编辑: 这是一种在运行时递归导入所有内容的方法…
(
__init__.py顶级软件包目录中的内容)
import pkgutil__all__ = []for loader, module_name, is_pkg in pkgutil.walk_packages(__path__): __all__.append(module_name) _module = loader.find_module(module_name).load_module(module_name) globals()[module_name] = _module
我不在
__import__(__path__+'.'+module_name)这里使用,因为使用它正确地递归导入软件包很困难。但是,如果您没有嵌套的子软件包,并且想避免使用
globals()[module_name],那是这样做的一种方法。
可能有更好的方法,但是无论如何,这是我能做的最好的方法。
原始答案 (对于上下文,请完全忽略。我最初误解了这个问题):
你
scripts/__init__.py长什么样 应该是这样的:
import script1import script2import script3__all__ = ['script1', 'script2', 'script3']
您甚至可以不定义进行操作
__all__,但是即使您定义了内容,也可以使用pydoc(如果没有其他功能)则可以更干净地工作,即使它只是您导入的内容的列表也是如此。



