2

我一直在努力解决这个问题,我已经尝试了一切,但我没有任何想法。

我一直看到这个错误:异常值:'thumbnail'不是有效的标签库:无法从 django.templatetags.thumbnail 加载模板库,没有名为 sorl.thumbnail.main 的模块

$DJANGO_PACKAGES/sorl/thumbnail/main.py 确实存在。

这是我所做的设置,

  1. 下载最新的 sorl-thumbnail 并将其位置添加到 .bash_profile 中的 python 路径

  2. 在 INSTALLED_APPS 中包含“sorl.thumbnail”(在 django 的 settings.py 中)

  3. 在 django 模板中使用了 {% load thumbnail %} 标签

看起来很明显 sorl-thumbnail 没有正确安装,但我可以从 python shell 和 django shell 导入缩略图(当我使用 {% load thumbnail %} 它会带来这个错误)。此外,相关文件中没有错别字(我已经检查了很多次)。

4

3 回答 3

2

我冒昧地猜测这是一个 $PYTHONPATH 问题。“缩略图”目录是否可能在路径上而不是“sorl”?我怀疑这是问题所在,因为您不想在 Python 解释器上键入“导入缩略图”。您应该输入“import sorl.thumbnail”。

要检查的另一件事是在导入后打印模块名称:

>>> import thumbnail
>>> print thumbnail

这将显示找到模块的文件系统位置,以防它从您不期望的地方加载另一个副本。

您还想确保您当前的工作目录不是根 ../sorl/ 位置(即不要从 sorl 文件夹运行 python)。这将允许您立即导入缩略图。

您应该从 python 解释器中检查您的完整 Python 路径(它将超过 $PYTHONPATH)以验证您的包位置:

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

了解有关Python 导入的更多信息也可能会有所帮助

于 2009-08-31T11:17:39.847 回答
0

这是关于无用的“不是有效的标签库”消息的另一个一般提示:对于您创建的标签,它可能像语法错误一样简单。

帽子提示:Django 用户的“摇滚”:http ://groups.google.com/group/django-users/browse_thread/thread/d65db3940acf16c3?tvc=2

于 2010-08-13T13:49:38.433 回答
0

问题解决了。

遵循 django 书籍时,建议在项目目录中创建应用程序,并在 INSTALLED APPS 语句中使用从包含项目的目录开始的路径引用这些应用程序,例如“siteproject.books”。如果不将该目录名称附加到文件路径,我就无法让 django 访问应用程序,因此,例如,我不能简单地使用“books”,而是需要在 INSTALLED APPS 语句中使用“siteproject.books” sorl.thumbnail 就是这种情况,需要将其称为 siteproject.sorl.thumbnail。包含“sorl.thumbnail”的其他尝试会产生一个非常难看的未格式化且令人困惑的紫色错误页面(是的,sorl 目录位于 $PYTHONPATH 中,所以谁知道为什么这些尝试不起作用......)。

不幸的是,Django 产生了“未定义标签”错误,这是它在许多情况下给出的普遍错误。它实际上没有任何意义,也对定位问题没有用处。

当我打开 sorl 目录中的文件并编辑 python 文件时,问题就解决了。我找到了从 sorl 目录导入对象的 import 语句,并将“siteproject.*”附加到这些路径中,一切都开始工作了。

于 2009-09-05T04:15:39.457 回答