繁体   English   中英

如何解决 ModuleNotFoundError?

[英]How to resolve ModuleNotFoundError?

我想在main.py导入abc.pyabc.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 And abc.py contains

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在某些情况下不再需要它,这样做更容易
  • from inside_folder.sub_folder import abc是完全错误的,按照 PEP 328 这告诉 Python 寻找顶级inside_folder 您需要在此处使用相对导入,以便 Python from .inside_folder.sub_folder查找导入文件的同级文件from .inside_folder.sub_folder
  • 尽管假设您完全在向我们展示并from main_folder import main.py或运行python -mmain_package.main的树之外,但PYTHONPATH将以不同的方式设置,否则
  • 您显示的结构与您的导入不匹配, abc.pysub_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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM