__import__を使えば動的?にimportをする事が出来ますが、親カレントにあるclassや関数は読めるのかしらと思ったので、ちとテスト。
# test.py #!/usr/bin/env python def test(): print "test function" obj = __import__ ("f.f") print obj fm = getattr(getattr(obj, "f"), "f", None) fm()
# f/f.py #!/usr/bin/env python def f(): import test print test test.test() print "f.f.py f()"
<module 'f' from '/Users/yasui/Desktop/仕事/new/work/web/naritatrans/f/__init__.pyc'> <module 'f' from '/Users/yasui/Desktop/仕事/new/work/web/naritatrans/f/__init__.pyc'> <module 'test' from '/Users/yasui/Desktop/仕事/new/work/web/naritatrans/test.pyc'> test function f.f.py f() <module 'test' from '/Users/yasui/Desktop/仕事/new/work/web/naritatrans/test.pyc'> test function f.f.py f()
どうも普通にimportとすれば良いようです。