簡體   English   中英

Python 中的包和模塊不工作

[英]Packages and Modules in Python not working

為什么這種架構不起作用?

 /test
     __init__.py
     app.py
     models.py 
     /subpackage
         __init__.py
         subpackage.py

這是示例代碼:

應用程序.py

from test.subpackage import hi_from_subpackage    

hi_from_subpackage()

子包/子包.py

from test.models import models

def hi_from_subpackage():
    print('Hi')

# I nee models here too
models()

錯誤是:

Traceback (most recent call last):
  File "app.py", line 1, in <module>
    from test.subpackage import hi_from_subpackage
**ModuleNotFoundError: No module named 'test.subpackage'**

我做錯了什么?

- 提前致謝

您對 python 的導入系統感到困惑,它發生了。 當你導入子包時,你想從 package subpackage包中導入一個模塊subpackage包,所以它應該是這樣的:

from subpackage.subpackage import hi_from_subpackage    

當你在 package 層次結構中處於較低位置時,你不需要說模塊來自 package,它已經“知道”它,因為它在更高的層次結構中。

from models import models

想想如果你在寫核心。 這里的models是在scope的子包中以全局變量的方式。 當你站在測試 package 中時,你需要用它的名字來指代一個下桿 package,就像你對一個變量做的那樣。

如果是 Windows,請嘗試從 cmd 運行pip install test 關於您正在使用的 IDE,我會向您推薦 vs-code。

暫無
暫無

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

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