1 回答

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超4個(gè)贊
您
__init__.py
的package
和tests
文件夾中沒有文件;這意味著它不是 python 包。- 如果你希望他們成為。您沒有正確使用 import 語句;此外,您沒有在
context.py
文件中使用導(dǎo)入,因此為了修復(fù)它,您需要?jiǎng)h除該行。我建議在這里閱讀更多關(guān)于包的信息;這將使您更深入地了解應(yīng)該放入
__init__.py
文件中的內(nèi)容。
__init__.py
需要這些文件才能使 Python 將目錄視為包含包;這樣做是為了防止具有通用名稱(例如字符串)的目錄無意中隱藏稍后出現(xiàn)在模塊搜索路徑上的有效模塊。在最簡(jiǎn)單的情況下,init .py 可以只是一個(gè)空文件,但它也可以執(zhí)行包的初始化代碼或設(shè)置__all__
變量,稍后描述。
我會(huì)使用的結(jié)構(gòu):
- package_name
- db
- __init__.py
- my_db.py
- tests
- __init__.py
- my_test.py
- __init__.py
您需要添加的唯一代碼是在my_db.py文件中:
def my_function():
return 1
在您的my_test.py文件中,您將擁有:
from package.db import mydb
mydb.my_function()
這就是你所需要的;關(guān)于通過__init__.py文件更改導(dǎo)入,請(qǐng)查看__all__是否確實(shí)需要。
添加回答
舉報(bào)