2012-01-28 216 views
2

嗨我想要使用PIL能够通过管理界面上传图片到我的django网站。麻烦PIL python

继承人的测试我安装PIL之后,我跑的结果:

cfarm:Imaging-1.1.7 christopherfarm$ python selftest.py 
-------------------------------------------------------------------- 
PIL 1.1.7 TEST SUMMARY 
-------------------------------------------------------------------- 
Python modules loaded from ./PIL 
Binary modules loaded from /Library/Python/2.6/site-packages/PIL 
-------------------------------------------------------------------- 
*** PIL CORE support not installed 
*** TKINTER support not installed 
*** JPEG support not installed 
--- ZLIB (PNG/ZIP) support ok 
*** FREETYPE2 support not installed 
*** LITTLECMS support not installed 
-------------------------------------------------------------------- 
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. 

我有点新手的时候谈到这个,有没有一种方式来获得支持的所有类型?我也尝试上传一个.png文件,但它仍然无法正常工作。试图运行sudo python setup.py build我收到以下错误,当Upload a valid image. The file you uploaded was either not an image or a corrupted image.

另外:

cfarm:Imaging-1.1.7 christopherfarm$ sudo python setup.py build 
running build 
running build_py 
running build_ext 
--- using frameworks at /System/Library/Frameworks 
building '_imaging' extension 
creating build/temp.macosx-10.6-universal-2.6 
creating build/temp.macosx-10.6-universal-2.6/libImaging 
gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch ppc -arch x86_64 -pipe -DHAVE_LIBJPEG -DHAVE_LIBZ -I/System/Library/Frameworks/Tcl.framework/Headers -I/System/Library/Frameworks/Tk.framework/Headers -IlibImaging -I/opt/local/include -I/System/Library/Frameworks/Python.framework/Versions/2.6/include -I/usr/local/include -I/usr/include -I/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -c _imaging.c -o build/temp.macosx-10.6-universal-2.6/_imaging.o 
_imaging.c:3017: warning: initialization from incompatible pointer type 
_imaging.c:3077: warning: initialization from incompatible pointer type 
/usr/libexec/gcc/powerpc-apple-darwin10/4.2.1/as: assembler (/usr/bin/../libexec/gcc/darwin/ppc/as or /usr/bin/../local/libexec/gcc/darwin/ppc/as) for architecture ppc not installed 
Installed assemblers are: 
/usr/bin/../libexec/gcc/darwin/x86_64/as for architecture x86_64 
/usr/bin/../libexec/gcc/darwin/i386/as for architecture i386 
_imaging.c:3017: warning: initialization from incompatible pointer type 
_imaging.c:3077: warning: initialization from incompatible pointer type 
l_imaging.c:3281: fatal error: error writing to -: Broken pipe 
compilation terminated. 
_imaging.c:3017: warning: initialization from incompatible pointer type 
_imaging.c:3077: warning: initialization from incompatible pointer type 
^R 
lipo: can't open input file: /var/tmp//ccuPSrVi.out (No such file or directory) 
error: command 'gcc-4.2' failed with exit status 1 

好像东西是错误的指针,我得到这个错误吗?

+1

你安装使用'pip' /'easy_install'或您的操作系统软件包管理器? – 0xc0de 2012-01-28 06:36:07

+0

我下载了tar文件,并尝试使用setup.py安装 – locoboy 2012-01-28 19:23:54

回答

6

你必须在Mac安装支持JPEG,例如,如果您使用的是自制的只是:

brew install jpeg 

或Ubuntu的

sudo apt-get install libjpeg62-dev 

你可能需要安装库,以便链接当PIL编译时,它会知道在哪里寻找JPEG支持。这对其他不支持的库也是一样的。

还有另外一个枕头选项命名,你可以在这里看看:http://pypi.python.org/pypi/Pillow

它只是处理比PIL更容易一些事情。此外,请检查this

+0

+1使用Pillow – 2012-01-28 15:25:39

+0

我使用brew安装但仍无法正常工作。当我尝试'python setup.py build'时,我也在 – locoboy 2012-01-28 19:25:25

+0

上面得到以下错误在BUILDME文件中,它表示使用“python setup.py build_ext -i”,这对我很有用。请让我知道这是否适用于你 – Hassek 2012-01-29 07:14:31

-1

可能需要编辑源文件包中的setup.py文件,并在构建和安装PIL之前向jpeg库的安装位置添加适当的路径。 PIL源中提供的安装说明可能会有所帮助。

+0

我在哪里可以找到jpeg安装的路径? – locoboy 2012-01-28 23:18:14

+0

我不确定。可能位于'/ usr/local'或'/ usr/local/lib',或者您可以阅读[本文](http://www.brantsteen.com/blog/python-27-libjpeg-pil-on-osx /) – machaku 2012-01-28 23:55:25

+0

是的,我试图改变它,仍然得到相同的错误,虽然:( – locoboy 2012-01-29 01:48:48