在模板标记中导入Markdown2

时间:2012-09-02 14:48:39

标签: python django import django-templates importerror

我的博客需要Markdown语法。我决定使用python-markdown2 library。我遵循TDD流程,因此我创建了测试,其中我导入了Markdown库并且它工作正常。然后我需要的是转换一些输出,以便所有测试通过。我认为它更像是一个表示逻辑,所以我创建了模板标签,我想在其中导入库......就我所知。问题是我无法导入该库!我调试了几个小时,我仍然找不到原因。

很少有事实:

  1. 之前已经在 tests.py 中导入(因此确实存在),
  2. 不使用外部库,模板标签工作正常;
  3. 准确的错误消息:

    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 %}
    

    P.S。如果需要,full errorall code

2 个答案:

答案 0 :(得分:1)

回溯显示github存储库中不存在的内容:templatetags目录中有一个名为markdown2.py的文件,该文件在cheese文件import markdown2时导入。删除此文件,它应该找到正确的文件。

答案 1 :(得分:0)

从控制台,在项目目录中激活Virtualenv,尝试:

pip install markdown2

这帮助了我,遇到了同样的问题。我已经检查过,使用

pip freeze

markdown2实际上并未安装,甚至认为它已在PyCharm中显示。