我想使用一个类
A
,它位于文件dir
的子目录A.py
中。它与文件 B.py
具有依赖性,该文件也位于同一目录 dir
中。我想使用其父目录中的 A
类。文件树如下所示:
parent_dir/
dir/
__init__.py (empty file)
A.py (imports B)
B.py
C.py <-- I am here
A的内容:
from B import B
class A:
def __init__():
pass
B的内容:
class B:
def __init__():
pass
现在,当我尝试通过
A.py
从 C.py
导入 from dir.A import A
时,我得到:
ModuleNotFoundError Traceback (most recent call last)
----> 1 from stargan_v2_tensorflow.networks import Generator
File ~/parent_dir/C.py:1
---> 1 from B import *
ModuleNotFoundError: No module named 'B'
我尝试通过
B.py
和 import dir.B as B
导入 from dir import B
,以便找到 B
,但仍然遇到相同的错误。如何导入 A
及其依赖项?
是
from .B import B
,注意.
之前的B
,那是相对导入。
也许看看“第十亿次相对导入” Stack Overflow 帖子。
重现:
mkdir -p dir
printf '' > dir/__init__.py
printf 'class B: pass' > dir/B.py
printf 'from .B import B\nclass A: pass' > dir/A.py
printf 'from dir.A import A\nprint("SUCCESS")' > C.py
python C.py