5

重複の可能性:
pip install PIL -E TICKETS-1 - JPEG/PNG サポートなし

画像クロッパーを使用していますが、フォームの検証に問題があります。GIF画像をアップロードするときにフォームが検証されますが、私が試した他の形式では次の例外が発生します:

Upload a valid image. The file you uploaded was either not an image or a corrupted image.

<form enctype="multipart/form-data" method="post" action="/pic/">{% csrf_token %}
    {{ form.as_p }}
    <p><input type="submit" value="View uploaded image"></p>
    <input type="hidden" name="stage" value="crop">
</form>

意見

if request.method == 'POST':
        form = ProfilePicForm(request.POST, request.FILES)
        if form.is_valid():
            *do stuff*
        else:
            logger.debug('Form errors == [%s]' % form.errors)

PILをインストールする前に(easy_installを使用して)libjpeg-devを(apt-getを使用して)インストールしました。最初は、これは libjpeg-dev または PIL のいずれかが正しくインストールされていないことが原因ではないかと考えましたが、png などの他の形式でも問題は解決しませんか? この問題は、実際には png 画像でも発生します。jpeg デコーダーの問題は発生していないので、そうではないと考えていますが、よくわかりません。また、django 開発サーバーを使用しています。


アップデート

PILの再インストールを試みることにしました。PIL インストール フォルダー /usr/local/lib/python2.7/dist-packages/PIL と PIL.pth ファイル (同じ dist-packages フォルダー内) を削除しました。を使用して setup.py スクリプトを実行しましたsudo python setup.py install。次に、selftest.py スクリプトを実行しましたが、最初のテストで失敗しました。

--------------------------------------------------------------------
PIL 1.1.7 TEST SUMMARY 
--------------------------------------------------------------------
Python modules loaded from ./PIL
Binary modules loaded from ./PIL
--------------------------------------------------------------------
--- PIL CORE support ok
*** TKINTER support not installed
*** JPEG support not installed
*** ZLIB (PNG/ZIP) support not installed
*** FREETYPE2 support not installed
--- LITTLECMS support ok
--------------------------------------------------------------------
Running selftest:
*****************************************************************
Failure in example:
try:
 _info(Image.open(os.path.join(ROOT, "Images/lena.jpg")))
except IOError, v:
 print v
from line #24 of selftest.testimage
Expected: ('JPEG', 'RGB', (128, 128))
Got: decoder jpeg not available
1 items had failures:
   1 of  57 in selftest.testimage
***Test Failed*** 1 failures.
*** 1 tests of 57 failed.

上記のサポートされていないモジュールで PIL を動作させる方法がわかりません。zlib1g-dev、libfreetype6-dev、liblcms1-dev、libjpeg62-dev、およびライブラリ自体がシステムにインストールされていることを確認できます。これらを apt-get でインストールしようとすると、既に最新バージョンを持っていると表示されるためです。 .

4

1 に答える 1

11

ソースから PIL をダウンロードしてみて、setup.py を編集して次の行を追加します。

add_directory(library_dirs, "/usr/lib/i386-linux-gnu")

この行の前 (214):

add_directory(library_dirs, "/usr/lib")

それから

sudo python setup.py install

今すぐ動作するはずです

于 2012-01-06T00:05:13.193 に答える