从当前目录强制导入模块
- 论坛
- 从当前目录强制导入模块
8 浏览
从当前目录强制导入模块
我有一个名为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 "", line 1, in File "b.py", line 1, in from . import a ValueError: Attempted relative import in non-package
为什么?
附注:我使用的是Python 2.7.3版本。