代码之家  ›  专栏  ›  技术社区  ›  Bob Aman

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

  •  0
  • Bob Aman  · 技术社区  · 16 年前

    我有一个具有如下目录结构的项目:

    /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 回复  |  直到 16 年前
        1
  •  4
  •   Alex Martelli    16 年前

    在python 2.5和2.6中,

    from __future__ import absolute_import
    

    应该更改python的 import 执行所需操作的行为(如果启用了根目录,/) sys.path 当然,-)这在2.7中成为了正常的Python行为(还没有发布,但是如果您好奇的话,早期的alpha已经被标记了)。

    推荐文章