首页 > 解决方案 > python从子目录嵌套导入

问题描述

root
├── rootfile.py
├── folder
│   └── __init__.py
│   └── file.py
│   └── subfolder
│       └── __init__.py
│       └── subfile.py

文件夹结构如上。

假设文件有函数 foo(),子文件 subfoo()。

rootfile 从 file.py 导入 foo()

from folder.file import foo

文件从 subfile.py 导入 subfoo()

from subfolder.subfile import subfoo

并报告 ModuleNotFoundError: No module named 'subfolder'。我应该如何解决这个错误?我在 file.py 中尝试了 sys.path.append 但它没有用。

有趣的是,

from folder.subfolder.subfile import subfoo

从根文件工作,但这不是我需要的。

我提前感谢您的时间和指导。

标签: python

解决方案


您的“查找导入的路径”很可能包含项目的根目录,但不包含文件夹/子文件夹等。

使用相对导入应该有助于:

   from .subfolder.subfile import subfoo

推荐阅读