如何解决 ModuleNotFoundError?

How to resolve ModuleNotFoundError?

我想在 main.py[=42= 中导入 abc.py ] 本身导入 xyz.pypqr.py。 以下是我的项目结构:

main_folder
    |
    +--main.py
    |
    +--inside_folder
        |
        +--sub_folder
            |
            +--abc.py
            |
            +--xyz.py
            |
            +--subsub_folder
                |
                +--pqr.py

为此: 我在 main.py 中写了以下几行: from inside_folder.sub_folder import abc 并且 abc.py 包含

from inside_folder.sub_folder.subsub_folder import pqr 
from inside_folder.sub_Folder import xyz

我也尝试从 abc.py 文件中导入不带 inside_folder.sub_folder 部分的内容,但是这样做会报告 ModuleNotFoundError

请帮我解决这个问题。

注意: 我已将 init.py 添加到所有文件夹。仍然无法解决错误。

  • 你的包(作为单个 python 命名空间的文件夹)可能应该有一个 __init__.py 文件来将它们声明为包,尽管 IIRC it's not quite necessary anymore in some cases 这样做更容易
  • from inside_folder.sub_folder import abc 是完全错误的,按照 PEP 328 这告诉 Python 寻找顶级 inside_folder。你需要在这里使用 relative import 所以 Python 寻找一个 sibling 导入文件又名 from .inside_folder.sub_folder
  • 尽管假设您完全在向我们展示的树之外并正在做 from main_folder import main.py 或 运行 python -mmain_package.main,但 PYTHONPATH 的设置将有所不同否则
  • 您显示的结构与您的导入不匹配,abc.py sub_folder 旁边,而不在
  • 里面

如果你正在使用 python2 如果每个文件夹都有 __init__.py 文件和下面的代码,你不会发现上面的文件夹结构有任何问题 main.py

from inside_folder.sub_folder import abc

abc.py

from subsub_folder import pqr 
import xyz

但如果您使用的是 python 3,则需要将 abc.py 更改为

from .subsub_folder import pqr 
from . import xyz