【发布时间】:2015-05-14 23:26:58
【问题描述】:
对于这个目录层次结构:
.
├── hello
│ ├── __init__.py
│ └── world
│ └── __init__.py
└── test.py
还有 Python 源文件:
test.py:
if __name__ == '__main__':
import hello
你好/__init__.py:
import world
你好/世界/__init__.py:
print("yes you win")
使用 Python 3.4 运行 test.py 会抛出 ImportError 说找不到模块 world,但使用 Python 2.7 一切都很好。
我知道搜索导入的模块时引用了sys.path,所以将目录hello添加到sys.path就可以消除错误了。
但是在 Python 2.7 中,在导入 world 之前,目录 hello 也不在 sys.path 中。是什么导致了这种差异? Python 2.7 中是否应用了任何递归搜索策略?
【问题讨论】:
标签: python python-2.7 import package python-3.4