我正在開發一個Django項目並將其部署到OpenShift PaaS。起初一切正常,但經過一些與模板系統無關的更改(我添加了django-hosts)後,發生了一些錯誤,並且出現了"module object 'template' has no attribute 'loader'"
錯誤。更奇怪的是,每次wsgi應用程序重新啓動後,它只出現兩次,第三次請求中的一切都開始工作。破損前我回到最後一次提交,但問題依然存在。我從零開始重新創建了項目並重新安裝了我的Django應用程序,但它也沒有去;錯誤開始出現,而不僅僅是前兩個請求。 from django import template
確實會導入模板模塊對象,但與預期相比,此對象缺少約5個屬性,包括loader
。Python導入:從django導入模板:模塊對象'模板'沒有屬性'loader'
然後我注意到,如果我嘗試在本地從Django shell運行相同的代碼,會發生同樣的事情。但它仍然可以在我的應用程序的views.py中使用本地Django開發服務器。最初用於OpenShift。我試着用from django.template import loader
替換from django import template
,並直接調用loader
- 和一切正常
我想我不明白關於Python導入的一些東西。什麼是
import a
a.b
和
from a import b
b
之間的區別?
爲什麼a.b在第一個例子中遺漏了屬性b在第二個呢?