2

NGINX/FastCGI を使用して Ubuntu の virtualenv 内で Django アプリを実行しており、JPG イメージを Django 管理アプリにアップロードしようとしています。

「有効な画像をアップロードしてください。アップロードしたファイルは画像ではないか、破損した画像です。」というエラーが表示されます。GIF 画像をアップロードできるので、問題を引き起こしているのは JPEG だけです。

これが私がこれまでに試したことです:

1) PIL の前に libjpeg62-dev をインストールします。

pip uninstall pil
sudo apt-get libjpeg62-dev
pip install pil

PIL インストールの最後に、次のように表示されます。

PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version       1.1.7
platform      linux2 2.6.5 (r265:79063, Apr 16 2010, 13:09:56)
              [GCC 4.4.3]
--------------------------------------------------------------------
*** TKINTER support not available
--- JPEG support available
--- ZLIB (PNG/ZIP) support available
--- FREETYPE2 support available
*** LITTLECMS support not available

JPEGのサポートがあるようです。また、手動テストを行って検証し、検証しました:

>>> from PIL import Image
>>> trial_image=Image.open("/path/to/my/image.png")
>>> trial_image.verify()

2) 上記のアプローチ #1 と同様ですが、手動で JPG_ROOT を指定します。

pip uninstall pil
sudo apt-get libjpeg62-dev
pip install --no-install pil
vi /path/to/virtualenv/build/PIL/setup.py (JPG_ROOT = libinclude("/usr/lib"))
pip install pil

3) Pillow (PIL フォーク) で運試し

pip uninstall pil
sudo apt-get libjpeg62-dev
pip install pillow    

私はDjangoを実行しています.PILをインストールするたびにnginxサービスを停止して開始しようとしています.

これまでのところ、上記のアプローチのいずれも、Ubuntu の Django アプリで上記のエラー メッセージを回避できませんでした。同じDjangoアプリを実行しているローカル開発ボックス(Mac OSX 10.6.5)で同じJPG画像を問題なくアップロードできるので、Ubuntuでの展開に問題があることがわかります。

どんな助けでも大歓迎です!

4

2 に答える 2

1

さて、私は Django 管理者からログアウトし、再度ログインすることにしました....突然、正常に動作しました! おいおい。私が最後に試したのは上記のアプローチ #2 だったので、誰かがこの問題を抱えている場合は、それが最善の解決策です。

于 2012-02-14T20:44:28.043 に答える
0

あなたは近かった。しかし、必要なライブラリは異なりました。

答えは、私を助けてくれました、ここにあります https://stackoverflow.com/a/23445746/1478569

于 2014-08-12T15:21:02.030 に答える