想象一下目录结构:
/ 一种/ __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
模块?b
a.c
更新:
根据python dev 邮件列表,它似乎是文档中的一个错误。默认情况下,python27 中的导入不是绝对的。