我有一个 python 2.6 Django 应用程序,它的文件夹结构如下:
/foo/bar/__init__.py
我在文件系统上还有另外几个目录,其中包含这样的 python 模块:
/modules/__init__.py
/modules/module1/__init__.py
/other_modules/module2/__init__.py
/other_modules/module2/file.py
每个模块__init__
都有一个类。例如module1Class()
和module2Class()
分别。在module2
中,file.py
包含一个名为 的类myFileClass()
。
我想做的是放入一些代码,/foo/bar/__init__.py
这样我就可以像这样在我的 Django 项目中导入:
from foo.bar.module1 import module1Class
from foo.bar.module2 import module2Class
from foo.bar.module2.file import myFileClass
具有模块的目录列表包含在 Django 配置中的元组中,如下所示:
module_list = ("/modules", "/other_modules",)
我试过使用__import__
和vars()
动态生成这样的变量:
import os
import sys
for m in module_list:
sys.path.insert(0, m)
for d in os.listdir(m):
if os.path.isdir(d):
vars()[d] = getattr(__import__(m.split("/")[-1], fromlist=[d], d)
但这似乎不起作用。有没有办法做到这一点?
谢谢!