无法理解奇怪的Python导入

时间:2014-08-14 06:53:43

标签: python

我设置了这个小测试:

test\
    config.py
    run.py
    movie\
        __init__.py
        ironman.py
        impossible.py

我从run.py文件夹中运行了test

run.py

import movie.ironman

ironman.py

import impossible #okay
import config     #okay

这两种进口都很好,真是太疯狂了。假设我的路径是相对于test文件夹的。我可以理解config.py是如何导入的,但impossible.py是如何导入的?不应该是movie.impossible而是

我真的很烦恼,而python中的导入系统对我来说有点混乱。如果有人能帮助我,那将是很棒的。提前谢谢!

1 个答案:

答案 0 :(得分:3)

直到Python 2.5,相对和绝对进口之间没有真正的区别。在您的示例movie中,相对导入与当前模块相关。 在较新的python版本中,您可以/必须导入具有前导.

的相关模块
import config
from .impossible import something

这里impossible是一个相对于电影目录的模块。 config对于搜索路径是绝对的,它还包含调用程序run.py的目录。