Python 从导入同级模块的子文件夹导入模块

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

文件夹结构:

ABC
|--db
|   |-- __init__.py
|   |-- post.py
|   |-- common.py
|   |-- connection.py
|-- __init__.py
|-- main.py

从 main.py 我想导入 db 文件夹中的 post.py 。 在 post.py 中,我从 common.py 导入一些函数。

main.py内容:

from db import post

post.py内容:

from common import table_insert,get_row

运行 main.py 会出现此错误:

Traceback (most recent call last):
  File "/home/user/ABC/main.py", line 1, in <module>
    from db import post
  File "/home/user/ABC/db/post.py", line 1, in <module>
    from common import table_insert,get_row
ModuleNotFoundError: No module named 'common'

附加信息:

  • /home/user/ABC 位于 sys.path 中
  • __init__.py
    文件为空

我尝试在 python 文档中搜索有关如何导入其他模块的一般描述,这些模块又导入其他模块。没有运气 。我在 Stackoverflow 上搜索了类似的案例 - 没有找到任何可用的答案

python import nested siblings
1个回答
0
投票

post.py
中,必须使用相对导入:

from .common import table_insert, get_row

使用相对导入是指与

post.py
相同的目录,即
db
目录。

© www.soinside.com 2019 - 2024. All rights reserved.