python:在包中获取模块

时间:2016-03-21 21:38:13

标签: python

我想从包中提供动态模块列表。布局:

modules/
    __init__.py
    index.py
    user.py

现在我有一个静态定义的modulelist元组:

modulelist = ('index','user')

然后我访问from modules import modulelist

动态提供元组(或列表)的主流方式是什么?

1 个答案:

答案 0 :(得分:0)

以下是使用pkgutil.walk_packages的代码段(此处为文档:https://docs.python.org/2/library/pkgutil.html#pkgutil.walk_packages):

# In your case -- you can however substitute any package
import modules
mod = modules

for _, module_name, _ in pkgutil.walk_packages(
    mod.__path__,
    prefix=mod.__name__ + '.',
):
    # Do something with module_name

我在代码编写的几个地方使用过这个: