python:相对导入的别名

时间:2015-07-14 10:53:37

标签: python python-import

是否可以使用相对导入导入具有别名的相同包的模块?

说我有以下包结构:

lib/
    foobar/
        __init__.py
        foo.py
        bar.py

在foo.py中,我想使用bar.py中的内容,但我想将它用作" bar.my_function",而不是{{ 1}},我已经尝试from .bar import my_functionimport .bar as bar,两者都不起作用(语法异常无效)。我已经尝试了pythhon2.7和python3.4(后者是我的目标版本)。

但是,什么工作,以及我现在使用的是import .bar,即绝对导入而不是相对。这是一个很好的解决方案,因为我不希望更改包名称(即使它确实如此,代码中也没有太大的改变),但如果我这样做会很好可以使用相对导入来完成这个!

要点:

import foobar.bar as bar

1 个答案:

答案 0 :(得分:7)

您需要使用

from module import name

有关此事件的documentation

  

[...]您可以使用recordname形式的import语句编写显式相对导入。这些显式相对导入使用前导点来指示相对导入中涉及的当前和父包。 [...]