我一直在试着解决这个问题,我尝试了一切,但我没有任何想法。
我一直看到这个错误: 异常值:'thumbnail'不是有效的标记库:无法从django.templatetags.thumbnail加载模板库,没有名为sorl.thumbnail.main的模块
$ DJANGO_PACKAGES / sorl / thumbnail / main.py存在。
以下是我设置的内容,
下载了最新的sorl-thumbnail并将其位置添加到.bash_profile中的python路径
在INSTALLED_APPS中包含'sorl.thumbnail'(在django的settings.py中)
在django模板中使用了{%load thumbnail%}标记
似乎很明显,sorl-thumbnail没有正确安装,但是我能够从python shell和django shell导入缩略图(当我使用{%load thumbnail%}时,它会带来此错误)。此外,相关文件中没有拼写错误(我已多次检查过)。
答案 0 :(得分:2)
我冒昧地猜测这是一个$ PYTHONPATH问题。 “thumbnail”目录是否可能在路径上而不是“sorl”?我怀疑这是问题所在,因为您不希望能够在Python解释器上键入“import thumbnail”。您应该输入“import sorl.thumbnail”。
要检查的另一件事是在导入后打印模块名称:
>>> import thumbnail
>>> print thumbnail
这将显示找到模块的文件系统位置,以防它从您不期望的地方加载另一个副本。
您还需要确保当前的工作目录不是根.../sorl/位置(即不要从sorl文件夹运行python)。这将允许您直接导入缩略图。
您应该从python解释器中检查完整的Python路径(它将超过$ PYTHONPATH)以验证您的包位置:
>>> import sys
>>> print sys.path
了解有关Python importing
的更多信息可能也会有所帮助答案 1 :(得分:0)
问题解决了。
当关注django书时,建议在项目目录中创建应用程序,并在INSTALLED APPS语句中引用这些应用程序,其路径从包含项目的目录开始,例如'siteproject.books' 。我无法在没有将该目录名称附加到文件路径的情况下给django访问应用程序,因此,例如,我无法简单地使用“书籍”,但需要在INSTALLED APPS语句中使用“siteproject.books”这就是sorl.thumbnail的情况,需要将其称为siteproject.sorl.thumbnail。包含'sorl.thumbnail'的其他尝试会产生一个非常丑陋的未格式化和令人困惑的紫色错误页面(是的,sorl目录在$ PYTHONPATH中,所以谁知道为什么这些尝试不起作用......)。
不幸的是,Django正在产生'undefined tag'错误,这是一个在许多情况下都会出现的广义错误。它并不意味着任何事情,也不能用于定位问题。
当我在sorl目录中打开文件并编辑python文件时,问题解决了。我发现从sorl目录导入对象的import语句,我将'siteproject。*'附加到这些路径,一切都开始工作了。
答案 2 :(得分:0)
这是关于无用的“非有效标记库”消息的另一个一般性提示:对于您创建的标记,它可能像语法错误一样简单。
帽子提示:Django用户'摇滚':http://groups.google.com/group/django-users/browse_thread/thread/d65db3940acf16c3?tvc=2