“
lib/
的父目录必须是sys.path
。您的“
lib/__init__.py
”可能看起来像这样:from . import settings # or just 'import settings' on old Python versions
class Helper(object):
pass
然后,以下示例应该起作用:
from lib.settings import Valuesfrom lib import Helper
回答问题的编辑版本:
__init__.py定义包从外部的外观。如果需要使用
Helperin,
settings.py则
Helper在另一个文件中定义,例如’
lib/helper.py‘。
。| `-import_submodule.py `-lib |-__init__.py |-foo | |-__init__.py | `-someobject.py |-helper.py `-settings.py2个目录,6个文件
命令:
$ python import_submodule.py
输出:
settingshelperHelper in lib.settingssomeobjectHelper in lib.foo.someobject# ./import_submodule.pyimport fnmatch, osfrom lib.settings import Valuesfrom lib import Helperprintfor root, dirs, files in os.walk('.'): for f in fnmatch.filter(files, '*.py'): print "# %s/%s" % (os.path.basename(root), f) print open(os.path.join(root, f)).read() print# lib/helper.pyprint 'helper'class Helper(object): def __init__(self, module_name): print "Helper in", module_name# lib/settings.pyprint "settings"import helperclass Values(object): passhelper.Helper(__name__)# lib/__init__.py#from __future__ import absolute_importimport settings, foo.someobject, helperHelper = helper.Helper# foo/someobject.pyprint "someobject"from .. import helperhelper.Helper(__name__)# foo/__init__.pyimport someobject


