【发布时间】:2012-12-22 09:03:48
【问题描述】:
我有包p,其中有模块a 和b。 a 依赖于b:
b.py 内容:
import a
但是我想确保b 从同一个p 包目录导入我的a 模块,而不是从PYTHONPATH 导入任何a 模块。
所以我尝试将b.py 更改如下:
from . import a
只要我在p 包目录之外时导入b,它就可以工作。给定以下文件:
/tmp
/p
a.py
b.py
__init__.py
以下作品:
$ cd /tmp
$ echo 'import p.b' | python
以下操作无效:
$ cd /tmp/p
$ echo 'import b' | python
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "b.py", line 1, in <module>
from . import a
ValueError: Attempted relative import in non-package
为什么?
附:我正在使用 Python 2.7.3
【问题讨论】:
标签: python