在Python 3.2中导入类

0 投票
1 回答
779 浏览
提问于 2025-04-17 11:56

在文件 foo.py 中,我想从文件 main.py 导入类 A,文件夹结构如下:

main.py
__init__.py
|-folder1
  __init__.py
  |-folder 2
    __init__.py
    foo.py
  |-folder 3
  ...

那我该怎么写导入的那一行呢?我试过一些写法,比如:

from ..main import A

但是我只得到了

ValueError: Attempted relative import in non-package

1 个回答

2

这个错误是因为你运行文件的方式不对。如果你想使用相对导入,你需要这样运行你的 foo 程序:

>>> import topfolder.folder1.folder2.foo
>>> foo.run()

换句话说,你需要把你导入的包结构当成一个真正的包来处理。

撰写回答