我设置了这个小测试:
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中的导入系统对我来说有点混乱。如果有人能帮助我,那将是很棒的。提前谢谢!
答案 0 :(得分:3)
直到Python 2.5,相对和绝对进口之间没有真正的区别。在您的示例movie
中,相对导入与当前模块相关。
在较新的python版本中,您可以/必须导入具有前导.
:
import config
from .impossible import something
这里impossible
是一个相对于电影目录的模块。 config
对于搜索路径是绝对的,它还包含调用程序run.py
的目录。