簡體   English   中英

如何從同一個子包中導入另一個模塊中的模塊?

[英]How to import a module in another module from the same subpackage?

我的 package 樹如下:-

My_package
    |
    +--__init__.py    (empty)
    +--mainfile.py
    +--main_modules
        |
        +--__init__.py    (empty)
        +--module1.py
        +--module2.py

module2的內容:-

class Wish:
    def greatings(self):
        print("Hello World!")

wish = Wish()

當我嘗試從 module1 中的 module2 導入希望時:- module1 的內容:-

from module2 import wish

沒有錯誤。

但是當我在 mainfile.py 中導入兩個模塊時,mainfile.py 的內容:-

from main_modules import module1
from main_modules import module2

發生錯誤:-

Traceback (most recent call last):
  File "c:\Users\amuly\AppData\Local\Programs\Python\PyProgs\Test package\main package\mainfile.py", line 1, in <module>
    from main_modules import module1
  File "c:\Users\amuly\AppData\Local\Programs\Python\PyProgs\Test package\main package\main_modules\module1.py", line 1, in <module>       
    from module2 import wish
ModuleNotFoundError: No module named 'module2'

這是問題的屏幕截圖:-屏幕截圖

我已經搜索了各種相關問題並盡我所能,但它不起作用

由於module1module2在同一 package 級別上,您可以在module1.py中簡單地執行此操作:

from module2 import wish

要從mainfile.py導入module2.wish ,你可以這樣做:

from main_modules.module2 import wish

編輯 - 在module1.py中,將導入語句更改為:

from main_modules.m2 import wish

使用main_modules.m2會有所幫助,因為 function 調用是從mainfile.py發生的。 因此,隨后調用的文件中的 import 語句將查看相對於mainfile.py的導入。 我希望這是有道理的。

您必須刪除. from.module2 import wish中,因為它們處於相同的 package 級別(正如@Sindhu Satish 已經指出的那樣)。

在您module1.py文件中,您必須將您的導入語句更改為: from module2 import wish它能夠工作。

我希望我能幫助你!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM