簡體   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