2012-07-27 9 views
6

私は、pipで管理されているvirtualenvDjango 1.4PIL 1.1.7を実行しています。私は私の管理インタフェースを介してJPEGファイルをアップロードするたびに、私は次のエラーを取得する:として多くのUbuntuユーザが報告しているその真の位置が/usr/lib/i386-linux-gnu/であったUpload a valid image. The file you uploaded was either not an image or a corrupted image.DjangoがPIL JPEGサポートを認識するようにする

、インストール時に、PILはerronously、libjpegため/usr/lib/に見えました。それは世話をしている。私はこれらの記事で回答が続い:

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

Why can't I upload jpg files to my Django app via admin/?

次のように今すぐインストールの最終出力はなります


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 

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

EDIT 1:また、この記事のように、私はログアウトして戻っ管理者でログインしようとしていることに注意してください、だけでなく、pillowをインストール:Uploading a JPEG image via Django displays error

+0

PILの代わりに[Pillow](http://pypi.python.org/pypi/Pillow)をインストールしましたか? sys.pathを確認してください – jterrace

+0

モデルをアップロードできますか? – nicowernli

+0

@jterrace:はい。また、そのインストールは、JPEGサポートが利用可能であると私に言いました。 – novembrine

答えて

2

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

最初にPILをインストールしたときに、接頭辞はsudoではありませんでしたが、毎回やりました。このように、Meithamのアドバイスから構築して、私は輸入がどこから来ているかを調べた。それは正しい場所から来ましたが、私が言ったインストール後の出力にもかかわらず、私が望む拡張はありませんでした。長文で言えば、私は自分のサイトパッケージからディレクトリを削除しました。pip freeze私にはPILはありませんでしたが、私に言われたのはsudo pip installと言われ続けました。

学習:virtualenvは、ユーザーの権限に基づいてユーザーのディレクトリに基づいています。同じコマンドにsudopipを組み合わせる前に2度考えてください

関連する問題