想象一下目录结构:
/
一种/
__init__.py
b.py
py
py
文件/a/b.py看起来像:
进口c 应该_be_absolute = c
所有其他文件(包括__init__)都是空的。
运行测试脚本时(使用 python 2.7):
import a.b
print a.b.should_be_absolute
从PYTHONPATH=/一个空目录(所以没有PYTHONPATH从当前目录添加任何内容)我得到
<module 'a.c' from '/a/c.py'>
根据PEP 328和import <> is always absolute我期望的声明:
<module 'c' from '/c.py'>
当我删除/a/c.py文件时,输出与预期一致。
我错过了什么?如果这是正确的行为 - 如何从(而不是)导入c模块?ba.c
更新:
根据python dev 邮件列表,它似乎是文档中的一个错误。默认情况下,python27 中的导入不是绝对的。