2009-08-31 33 views
2

我一直在拉我的頭髮試圖解決這個問題,我已經嘗試了一切,我沒有想法。需要幫助解決sorl縮略圖錯誤:「'縮略圖'不是一個有效的標籤庫:」

我不斷看到此錯誤: 異常值:「縮略圖」是不是一個有效的標記庫:無法從django.templatetags.thumbnail加載模板庫,沒有模塊名爲sorl.thumbnail.main

$ DJANGO_PACKAGES /sorl/thumbnail/main.py確實存在。

這裏就是我所做的設置,

  1. 下載最新SORL-的縮略圖,並在INSTALLED_APPS包含 'sorl.thumbnail' 的.bash_profile

  2. 添加其位置到Python的路徑(Django的settings.py)

  3. 使用的{%負載縮略圖%}標籤在Django模板

看起來很明顯sorl-thumbnail安裝不正確,但是我能夠從python shell和django shell導入縮略圖(當我使用{%load thumbnail%}時會帶來這個錯誤)。此外,在相關文件中沒有錯別字(我已經檢查了很多次)。

回答

2

我會冒險猜測這是一個$ PYTHONPATH問題。 「縮略圖」目錄是否可能在路徑上而不是「sorl」?我懷疑這是問題,因爲你不想在Python解釋器上鍵入「導入縮略圖」。你應該輸入「import sorl.thumbnail」。

另一件事是檢查導入後打印模塊名稱:

>>> import thumbnail 
>>> print thumbnail 

這將顯示在模塊中發現的文件系統位置,在情況下,它加載另一個副本,從什麼地方,你不要指望。

您還想確保您當前的工作目錄不是根目錄../sorl/位置(即不要從sorl文件夾運行python)。這將允許您直接導入縮略圖。

您應該檢查你的完整的Python路徑(它將超過$ PYTHONPATH以上)從Python解釋器內,以驗證您的包位置:

>>> import sys 
>>> print sys.path 

這也可能有助於瞭解Python importing

+0

我有SORL目錄和$ PYTHONPATH縮略圖目錄。這是我的$ PYTHONPATH的樣子(我分隔爲清晰起見,路徑): 出口PYTHONPATH = $ PYTHONPATH: $ HOME/django_src: $ HOME/django_projects: $ HOME/django_projects/site_project/SORL: $ HOME/django_projects/site_project: $ HOME/django_projects/site_project/sorl/thumbnail – vector

+0

我能夠從shell中導入_both_ sorl.thumbnail和縮略圖 – vector

+0

這就是問題所在。您不希望縮略圖位於PYTHONPATH上,只有根目錄__sorl__。 –

0

問題已解決。

當遵循django書籍時,建議在項目目錄中創建應用程序,並在INSTALLED APPS語句中引用這些應用程序,其路徑從包含該項目的目錄開始,例如'siteproject.books 」。我無法讓django訪問應用程序而沒有將該目錄名追加到文件路徑,因此,例如,我無法簡單地使用'書籍',而是需要在INSTALLED APPS語句中使用'siteproject.books' sorl.thumbnail就是這種情況,需要將其稱爲siteproject.sorl.thumbnail。其他嘗試包括'索爾。縮略圖'會產生一個非常醜陋的非格式化和令人困惑的紫色錯誤頁面(是的,sorl目錄在$ PYTHONPATH中,所以誰知道爲什麼這些嘗試不起作用......)。

不幸的是,Django正在產生'未定義標記'錯誤,這是一個在許多情況下給出的廣義錯誤。這並不意味着什麼,對於查找問題沒有用處。

當我打開sorl目錄中的文件並編輯python文件時,問題就解決了。我找到了從sorl目錄導入對象的導入語句,並將「siteproject。*」附加到這些路徑,並且所有內容都開始工作。