如何将包中的所有模块作为列表导入?

时间:2017-05-08 21:36:04

标签: python loops import module package

好的,所以我试图找到一种方法来获取包中所有模块的列表,变成一个变量。

我的文件结构是这样的:

main/
  app.py
  __init__.py
  modules/
     __init.py
     mod_1.py
     mod2.py

所有代码都是从app.py运行的。 modules文件夹中将包含许多不同的模块,由具有通用接口的几个人制作。目标是让app.py导入main.modules中所有模块的列表,然后遍历它们,进行如下调用:

for mod in module_list:
    mod.add(5,2)

我有一个工作版本,我有一个文件名列表,然后使用module_list = map(__import__, file_list)制作一个我能够循环并调用的模块列表。问题是,我正在使用sys.append的可怕方法(' path / to / module / folder /')并按.py扩展名过滤来获取我的文件列表,但问题是这在其他计算机上不能很好地工作。使用 init .py文件,我现在可以从任何地方正确导入我的主/包:

import main

(显然有更好的名字)。我能做的事情如下:

main.modules.mod_1.add(5,2)

from main.modules import *
mod_1.add(5,2)
mod_2.add(6,2)

但我无法找到一种方法来列出main.modules'包中的所有模块

mods = main.modules.*
mods = from main.modules import *
import main.modules.* as mods

所有人都不能工作,而且是我能来的最近的人。任何帮助都会很棒,谢谢!

0 个答案:

没有答案