2

私はこの問題を解決しようと懸命に努力してきました。あらゆることを試しましたが、アイデアが残っていません。

このエラーが表示され続けます: Exception Value: 'thumbnail' is not a valid tag library: Could not load template library from django.templatetags.thumbnail, No module named sorl.thumbnail.main

$DJANGO_PACKAGES/sorl/thumbnail/main.py は存在します。

ここで私が設定したことは次のとおりです。

  1. 最新の sorl-thumbnail をダウンロードし、その場所を .bash_profile の python パスに追加しました

  2. INSTALLED_APPS (django の settings.py 内) に「sorl.thumbnail」を含めました

  3. django テンプレートで {% ロード サムネイル %} タグを使用しました

sorl-thumbnail が正しくインストールされていないことは明らかですが、python シェルと django シェルからサムネイルをインポートできます ({% サムネイルの読み込み %} を使用すると、このエラーが発生します)。また、関連ファイルに誤字脱字はありません(何度も確認しました)。

4

3 に答える 3

2

これは $PYTHONPATH の問題だと思います。「サムネイル」ディレクトリが「sorl」ではなくパス上にある可能性はありますか? Python インタープリターで「サムネイルのインポート」を入力したくないため、これが問題であると思われます。代わりに「import sorl.thumbnail」と入力する必要があります。

チェックするもう1つのことは、インポート後にモジュール名を出力することです:

>>> import thumbnail
>>> print thumbnail

これにより、予期しない場所から別のコピーをロードしている場合に備えて、モジュールが見つかったファイルシステムの場所が表示されます。

また、現在の作業ディレクトリがルート ../sorl/ の場所ではないことを確認する必要があります (つまり、sorl フォルダーから python を実行しないでください)。これにより、サムネイルをすぐにインポートできます。

パッケージの場所を確認するには、Python インタープリター内から完全な Python パス ($PYTHONPATH 以上になります) を確認する必要があります。

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

Python のインポートについてさらに学ぶことも役立つ場合があります。

于 2009-08-31T11:17:39.847 に答える
0

役に立たない「有効なタグライブラリではありません」というメッセージに関するもう1つの一般的なヒントを次に示します。作成するタグの場合、構文エラーのように単純である可能性があります。

帽子のヒント:Djangoの「ロック」-ユーザー: http: //groups.google.com/group/django-users/browse_thread/thread/d65db3940acf16c3?tvc = 2

于 2010-08-13T13:49:38.433 に答える
0

問題が解決しました。

django book に従うときは、プロジェクト ディレクトリ内にアプリを作成し、INSTALLED APPS ステートメントでこれらのアプリを参照することをお勧めします。このパスには、プロジェクトを含むディレクトリから始まるパス (たとえば、「siteproject.books」) が含まれます。そのディレクトリ名をファイル パスに追加しないと、django にアプリへのアクセス権を付与できませんでした。たとえば、単純に「books」を使用することはできませんでしたが、INSTALLED APPS ステートメントで「siteproject.books」を使用する必要がありました。これは、siteproject.sorl.thumbnail として参照する必要がある sorl.thumbnail の場合に当てはまりました。'sorl.thumbnail' をインクルードしようとすると、非常に見苦しいフォーマット化されていない紛らわしい紫色のエラー ページが表示されます (そうです、sorl ディレクトリは $PYTHONPATH にあったため、これらの試みが機能しなかった理由は誰にもわかりません...)。

残念ながら、Django は「未定義のタグ」エラーを生成していました。これは、多くの状況で発生する一般化されたエラーです。これは実際には何の意味もなく、問題の特定には役立ちません。

sorl ディレクトリのファイルを開いて python ファイルを編集したところ、問題は解決しました。sorl ディレクトリからオブジェクトをインポートする import ステートメントを見つけ、それらのパスに「siteproject.*」を追加すると、すべてが機能し始めました。

于 2009-09-05T04:15:39.457 に答える