我有p包含模块a和b. a依赖于b:
b.py内容:
import a
但是我想确保从同一个包目录导入我的模块,b而不仅仅是从.apaPYTHONPATH
所以我试图改变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