Ошибка в фильтрах {% markdown%} и {% textile%} в Django Nonrel - PullRequest
2 голосов
/ 15 ноября 2011

У меня проблемы с использованием Markdown в Django Nonrel. Я следовал этим инструкциям (добавил 'django.contrib.markup' к INSTALLED_APPS, включил {% load markup %} в шаблон и использовал |markdown фильтр после установки python-markdown), но я получаю следующую ошибку:

Error in {% markdown %} filter: The Python markdown library isn't installed.

В этой строке:

/path/to/project/django/contrib/markup/templatetags/markup.py in markdown
    they will be silently ignored.
    """
    try:
        import markdown
    except ImportError:
        if settings.DEBUG:
            raise template.TemplateSyntaxError("Error in {% markdown %} filter: The Python markdown library isn't installed.") ...
        return force_unicode(value)
    else:
        # markdown.version was first added in 1.6b. The only version of markdown
        # to fully support extensions before 1.6b was the shortlived 1.6a.
        if hasattr(markdown, 'version'):
            extensions = [e for e in arg.split(",") if e]

Кажется очевидным, что import markdown вызывает проблему, но когда я запускаю:

$ python manage.py shell
>>> import elementtree
>>> import markdown

все работает хорошо.

Запуск Markdown 2.0.3, Python 2.7 и последней версии Django Nonrel.

ОБНОВЛЕНИЕ : Я установил текстиль, и он не работает. Выдает ту же ошибку.

ОБНОВЛЕНИЕ 2 : Эта проблема связана с Django Nonrel. Я взял более старый проект Django (1.3.1) и работает как положено.

Идеи

Спасибо!

1 Ответ

1 голос
/ 20 ноября 2011

Хорошо, ошибка новичка.

Оказывается, что Django Nonrel не смог найти уценку, потому что по какой-то причине он не был установлен в пути python, который искал. В этом случае уценка была установлена ​​в /usr/lib/pymodules/python2.7 вместо /usr/local/lib/python2.7/dist-packages/ или в другом обычном месте. Поэтому я скопировал папку уценки в место, указанное путем Python, и ошибка исчезла.

...