2012-09-02 50 views
0

我需要我的博客的Markdown語法。我決定使用python-markdown2 library。我遵循TDD過程,所以我創建了測試,我在其中導入了Markdown庫並且它工作正常。然後,我需要的是轉換一些輸出,以便所有測試都通過。我認爲它更像是一個表示邏輯,所以我創建了一個模板標籤,我想在其中導入庫和......就我所知。問題是我無法導入該庫!我調試了幾個小時,但仍然無法找到原因。在模板標記中導入Markdown2

幾個事實:

  1. 它進口的tests.py之前(因此它不存在),
  2. 不使用外部庫,模板標籤工作正常;

精確的錯誤消息:

TemplateSyntaxError at /article/1/foo-bar/ 
'cheese' is not a valid tag library: ImportError raised loading blog.templatetags.cheese: cannot import name markdown 

這裏的templatetags/cheese.py

from django import template 
import markdown2 

register = template.Library() 


@register.filter 
def eggs(value): 
    return value 

這裏的模板:

{% load cheese %} 

附:如果需要,full errorall code

+0

如果您只是嘗試從交互式shell導入cheese,會發生什麼情況? – Claudiu

+0

@Claudiu https://gist.github.com/3600016 – daGrevis

+0

當你粘貼回溯曲目時,請先點擊「切換到剪切和粘貼模式」,它使事情變得更容易閱讀。 –

回答

1

回溯顯示的東西不存在於您的github回購中:在templatetags目錄中有一個名爲markdown2.py的文件,當cheese文件的import markdown2文件導入時會導入該文件。刪除這個文件,它應該找到正確的。

+0

是的,在_templatetags_目錄中只有一些垃圾文件只在本地。感謝您指出! – daGrevis

0

從控制檯,其在項目目錄激活了您的virtualenv,請嘗試:

pip install markdown2 

,幫助我,有同樣的問題。我已經檢查過,使用

pip freeze 

markdown2實際上沒有安裝,甚至認爲它顯示在PyCharm中。