在Python中,如何通过其绝对完全限定名称来引用标识符?

时间:2009-12-08 23:54:53

标签: python namespaces

我的项目目录结构如下:

/foo/baz/__init__.py
/bar/foo.py
/bar/splat.py

问题是,/bar/splat.py是指foo.baz模块。此操作因错误No module named baz而失败,因为它正在尝试在/bar/foo.py内搜索此模块。我不希望Python搜索bar模块,我想告诉它在根foo模块中搜索baz。我怎么做?在Ruby中,您只需在标识符前加上::(在本例中为::Foo::Baz),是否有与之等效的Python?

1 个答案:

答案 0 :(得分:4)

在Python 2.5和2.6中,

from __future__ import absolute_import

应该改变Python的import行为来做你想要的(如果根目录,/,当然是sys.path ;-)。这成为2.7中的正常Python行为(尚未发布,但如果你很好奇,早期的alpha已被标记)。

相关问题