次のようなフォルダー構造を持つ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)
しかし、それはうまくいかないようです。これを行う方法はありますか?
ありがとう!