簡體   English   中英

如果從Templetetag導入模塊,Django無法找到我的模塊

[英]Django couldn't find my module if it is imported from a templetetag

我正在將現有的Django項目升級到v1.7,並創建一些模板標簽以簡化模板的使用。 我之前創建過一些,但是其中之一給出了以下錯誤:

ImportError raised loading recaptcha.templatetags.recaptcha: No module named utils

該模塊如下所示:

- recaptcha
     |- templatetags
     |         |- __init__.py
     |         |- recaptcha.py
     |
     |- __init__.py
     |- utils.py

有問題的導入在recaptcha.py中 ,我嘗試from recaptcha import utils嘗試, from recaptcha.utils import myfunctionimport recaptcha但是它們都from recaptcha.utils import myfunction 如果我僅導入recaptcha並嘗試在其上執行dir ,則它什么也不顯示。

奇怪的是,如果我在view.py或model.py文件中的另一個django應用程序中導入utils模塊,則它可以正常工作。 我也嘗試使用manage.py shell ,它也可以工作。

為了澄清起見,該項目目前使用virtualenv。

有任何想法嗎? 謝謝!

@catavaran回答的解決方案在起作用之前: 使用相對的導入,例如from ..utils import myfunction

問題在於templatetag模塊recaptcha.py和django應用程序recaptcha 具有相同的名稱 ,因此當我from recaptcha import utils鍵入內容時from recaptcha import utils 它將嘗試從自身而不是從recaptcha模塊中查找它 我將django應用程序重命名為catpcha ,它可以catpcha導入模塊。

@catavaran我真的不知道為什么刪除您的答案,但是如果您再次發布它,我會將其標記為正確的答案,您應該得到榮譽!

暫無
暫無

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

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