Нужна помощь в устранении ошибки sorl-thumbnail: "thumbnail не является допустимой библиотекой тегов:" - PullRequest
2 голосов
/ 31 августа 2009

Я вырывал свои волосы, пытаясь решить эту проблему, и я перепробовал все, и у меня не осталось идей.

Я вижу эту ошибку: Значение исключения: 'thumbnail' не является допустимой библиотекой тегов: не удалось загрузить библиотеку шаблонов из django.templatetags.thumbnail, нет модуля с именем sorl.thumbnail.main

$ DJANGO_PACKAGES / sorl / thumbnail / main.py существует.

Вот что я сделал для настройки,

  1. загрузил последнюю версию sorl-thumbnail и добавил ее местоположение в путь к питону в .bash_profile

  2. включает 'sorl.thumbnail' в INSTALLED_APPS (в settings.py для django)

  3. использовал тег {% load thumbnail%} в шаблоне django

Кажется очевидным, что sorl-thumbnail установлен неправильно, но я могу импортировать миниатюру из оболочки python и django (когда я использую {% load thumbnail%}, это приводит к этой ошибке). Кроме того, в связанных файлах нет опечаток (я проверял много раз).

Ответы [ 3 ]

2 голосов
/ 31 августа 2009

Рискну предположить, что это проблема $ PYTHONPATH. Возможно ли, что каталог «thumbnail» находится по пути, а не «sorl»? Я подозреваю, что это проблема, потому что вы не хотите иметь возможность набирать «import thumbnail» в интерпретаторе Python. Вместо этого вы должны ввести «import sorl.thumbnail».

Еще одна вещь, которую нужно проверить, это напечатать имя модуля после импорта:

>>> import thumbnail
>>> print thumbnail

Это покажет расположение файловой системы, в которой был найден модуль, в случае, если он загружает другую копию откуда-то, чего вы не ожидаете.

Вы также хотите убедиться, что ваш текущий рабочий каталог не находится в корневом каталоге ../sorl/ (т.е. не запускайте python из папки sorl). Это позволит вам сразу импортировать миниатюру.

Вы должны проверить полный путь к Python (он будет больше, чем $ PYTHONPATH) из интерпретатора Python, чтобы проверить местоположение вашего пакета:

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

Также может быть полезно узнать больше о Python-импорте

0 голосов
/ 13 августа 2010

Вот еще один общий совет по поводу бесполезного сообщения «недопустимая библиотека тегов»: для создаваемых тегов это может быть так же просто, как синтаксическая ошибка.

Подсказка для шляпы: 'Rock' для пользователей Django: http://groups.google.com/group/django-users/browse_thread/thread/d65db3940acf16c3?tvc=2

0 голосов
/ 05 сентября 2009

Проблема решена.

Следуя книге django, предлагается создавать приложения в каталоге проекта и ссылаться на эти приложения в операторе INSTALLED APPS с путем, начинающимся с каталога, содержащего проект, например, «siteproject.books». , Я не смог предоставить django доступ к приложениям без добавления этого имени каталога к пути к файлу, поэтому, например, я не смог просто использовать «книги», но мне нужно было использовать «siteproject.books» в инструкции INSTALLED APPS и это было в случае с sorl.thumbnail, который нужно было назвать siteproject.sorl.thumbnail. Другие попытки включить «sorl.thumbnail» приводят к очень уродливой неформатированной и сбивающей с толку ошибочной странице фиолетового цвета (да, каталог sorl был в $ PYTHONPATH, так что кто знает, почему эти попытки не сработали ...).

К сожалению, Django выдал ошибку 'undefined tag', которая является обобщенной ошибкой, которая возникает во многих ситуациях. На самом деле это ничего не значит и бесполезно для поиска проблем.

Проблема была решена, когда я открыл файлы в каталоге sorl и отредактировал файлы python. Я нашел операторы импорта, которые импортировали объекты из каталога sorl, и добавил «siteproject. *» К этим путям, и все стало работать.

...