【发布时间】:2019-10-29 13:04:28
【问题描述】:
我的项目结构如下:
project/
main.py
sub_a/
class_a.py
__init__.py
utils/
__init__.py
util_a.py
sub_b/
class_b.py
__init__.py
utils/
__init__.py
util_b.py
在每个class_a.py、class_b.py 中,都有这样的导入:
from utils import util_a/b
我的PYTHONPATH 指向sub_a 和sub_b。当我尝试
import class_b
在 main.py 中,我收到 ImportError:
ImportError: cannot import name util_b
我使用的是 Python 2.7。
我知道错误的出现是因为from utils import util_b 不明确,因此 Python 选择路径上的第一个,但我怎样才能重写导入以使其工作?
我不认为更改PYTHONPATH 是一种选择,因为sub_a 和sub_b 中的每一个都假设它们是PYTHONPATH 在自己的内部导入中的一部分。比如class_b.py中的from utils import util_b。
【问题讨论】:
-
有问题的导入语句在哪里?是在
main.py里面吗?我开始在回购中玩这个:github.com/fireproofsocks/python_import。 -- 这是一项正在进行的工作,但其中的一个示例可能有助于阐明 Python 的行为。
标签: python python-import