[英]How to import using a top level path in Python?
我正在開發python框架,並希望基於頂級包(項目名稱)進行導入。 用戶將通過復制整個框架並在其中編寫自己的模塊來使用該框架。
我當前的結構如下所示:
myapp/
config.py
docs/
framework/
main.py
utils.py
file.py
lib/
some_module.py
unit_tests/
test_utils.py
我希望能夠通過以下方式在lib和unit_tests中的python文件中使用以下導入:
from myapp.framework import utils
有沒有簡單的方法可以做到這一點? 我曾嘗試過進行sys.path.append()黑客攻擊,但實際上並沒有用。 如果有一種真正的Python方式可以實現這一目標,那么我不介意花費額外的精力來使其工作。
編輯:好吧,我再次嘗試了sys.path.append(),它確實起作用了,但這確實是一個優雅的解決方案,我真的很想聽聽是否還有其他方法。
簡而言之:您不能在兩個模塊之間使用相同的名稱。 您有myapp
文件夾和myapp.py
文件
那是因為導入模塊的順序。
因此,如果您嘗試在config.py中import myapp.lib.some_module
,那么解釋器將首先看到您在同一文件夾中有myapp.py並從字面上嘗試從該文件導入lib.some_module
,該文件不存在。
就像嘗試從該模塊外部導入myapp.myapp.lib.some_module
。
因此,最好的方法是重命名myapp.py
文件
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.