6

私は実行Django 1.4していPIL 1.1.7て、でvirtualenv管理されていpipます。管理インターフェースを介してJPEGファイルをアップロードするたびに、次のエラーが発生します。Upload a valid image. The file you uploaded was either not an image or a corrupted image.

多くのUbuntuユーザーが報告しているように、インストール時に、PILは誤って検索しました/usr/lib/libjpeg、実際の場所はにありました/usr/lib/i386-linux-gnu/。お世話になりました。私はこれらの投稿の答えに従いました:

Django ImageField "有効な画像をアップロードしてください。アップロードしたファイルは、画像ではないか、破損した画像でした。"

admin /経由でjpgファイルをDjangoアプリにアップロードできないのはなぜですか?

これで、インストールの最終出力は次のようになります。


PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version       1.1.7
platform      linux2 2.7.3 (default, Apr 20 2012, 22:44:07)
              [GCC 4.6.3]
--------------------------------------------------------------------
--- TKINTER support available
--- JPEG support available
--- ZLIB (PNG/ZIP) support available
--- FREETYPE2 support available
*** LITTLECMS support not available
--------------------------------------------------------------------
To add a missing option, make sure you have the required
library, and set the corresponding ROOT variable in the
setup.py script.

To check the build, run the selftest.py script.
changing mode of build/scripts-2.7/pilfile.py from 644 to 755
changing mode of build/scripts-2.7/pilfont.py from 644 to 755
changing mode of build/scripts-2.7/pilconvert.py from 644 to 755
changing mode of build/scripts-2.7/pilprint.py from 644 to 755
changing mode of build/scripts-2.7/pildriver.py from 644 to 755

changing mode of /usr/local/bin/pilfile.py to 755
changing mode of /usr/local/bin/pilfont.py to 755
changing mode of /usr/local/bin/pilconvert.py to 755
changing mode of /usr/local/bin/pilprint.py to 755
changing mode of /usr/local/bin/pildriver.py to 755
Successfully installed PIL

ただし、DjangoではBMPファイル以外はアップロードできません。これはこのプロジェクトでは受け入れられません。2番目のリンクのユーザーとは異なり、私はApacheを使用していないので、私の問題はおそらく関連していません。私の疑いは、Djangoがまだ古いインストールのPILを使用していることです。問題は、どこから入手できるのかわからないことです。のファイルは~/.virtualenvs/project/local/lib/python2.7/site-packages私には最新のようです。何か案は?

pillow編集1:この投稿のように、管理者からログアウトして再度ログインし、インストールしようとしたことにも注意してください: Django経由でJPEG画像をアップロードするとエラーが表示されます

4

1 に答える 1

2

pip実際にどのように機能するかを誤解しているため、このすべてが私のせいであることがわかりました。習慣として、私はすべてのインストールをスーパーユーザー特権に関連付けます。これは、この場合に必要なだけでなく、混乱のレシピにもなります。

初めてインストールPILしたときは、接頭辞を付けませんでしたがsudo、その後は毎回接頭辞を付けました。したがって、Meithamのアドバイスに基づいて、インポートがどこから来ているのかを確認しました。それは正しい場所から来ましたが、インストール後の出力に私がしたと言っていたにもかかわらず、私が望む拡張機能がありませんでした。簡単に言うと、サイトパッケージからディレクトリを削除してから、持っていpip freezeないと言い続けましたが、持っていると言いました。PILsudo pip install

学んだ教訓:virtualenvユーザーのディレクトリに基づいて、ユーザーの特権に基づいています。組み合わせる前に、同じコマンドでよく考えsudopipください

于 2012-07-30T15:59:40.657 に答える