如何从同目录有依赖的目录中导入Python类?

问题描述 投票:0回答:1

我想使用一个类

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
及其依赖项?

python python-3.x python-module
1个回答
0
投票

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
© www.soinside.com 2019 - 2024. All rights reserved.