我有p
包含模块a
和b
. a
依赖于b
:
b.py
内容:
import a
但是我想确保从同一个包目录导入我的模块,b
而不仅仅是从.a
p
a
PYTHONPATH
所以我试图改变b.py
如下:
from . import a
只要我在包目录b
之外时导入,它就可以工作。p
给定以下文件:
/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
为什么?
PS我正在使用Python 2.7.3