2011-02-01 25 views
8

Busqué un poco pero no pude encontrar un tuto para usar PIL con PyPy. Según el blog de PyPy, PIL es compatible.¿Cómo usar PIL con PyPy?

  • Instalé PIL con pip en mi PYTHONPATH.
  • Después de la descarga, pip crea 2 archivos .pyd: _imaging.pyd y _imagingmath.pyd.
  • Después de la instalación, copié% PYTHONPATH%/lib/site-packages/PIL en mi directorio PyPy site-packages.
  • Cuando ejecuto mi script (que usa PIL), dice que no puede importar el módulo _imaging C.

¿Cómo debo hacerlo?

edición: corro esto en Windows 7 x64 (Python 2.7.1 32bits)

aquí es el rastreo (PyPy 1.4.1 ventanas binario):

Traceback (most recent call last): 
    File "app_main.py", line 53, in run_toplevel 
    File "tools\python\gen_images.py", line 52, in <module> 
    main() 
    File "tools\python\gen_images.py", line 44, in main 
    image = Image.open(file) 
    File "d:\pypy\site-packages\PIL\Image.py", line 1965, in open 
    return factory(fp, filename) 
    File "d:\pypy\site-packages\PIL\ImageFile.py", line 91, in __init__ 
    self._open() 
    File "d:\pypy\site-packages\PIL\GifImagePlugin.py", line 97, in _open 
    self.seek(0) # get ready to read first frame 
    File "d:\pypy\site-packages\PIL\GifImagePlugin.py", line 152, in seek 
    self.dispose = Image.core.fill("P", self.size, 
    File "d:\pypy\site-packages\PIL\Image.py", line 37, in __getattr__ 
    raise ImportError("The _imaging C module is not installed") 
ImportError: The _imaging C module is not installed 
+0

puedo mostrar el error no? Funciona muy bien para mí, con PyPy 1.4.1. (1.4.0 dio errores de compilación). –

+1

aparentemente compiló usando CPython y esperaba que funcionase simplemente copiado. No hagas eso. Compila usando PyPy. – fijal

+0

¿Quiere decir PIL? Lo instalé con pip y configuré mingw para compilarlo (distutils.conf, compiler = mingw32). ¿Qué debo hacer para construirlo con pypy? – Syl

Respuesta

12

Hice esto:

$ /opt/pypy-1.4.1/bin/virtualenv test 
$ cd test 
$ bin/pip install PIL 
... 
-------------------------------------------------------------------- 
PIL 1.1.7 SETUP SUMMARY 
-------------------------------------------------------------------- 
version  1.1.7 
platform  linux2 2.5.2 (e503e483e9ac, Dec 21 2010, 12:02:29) 
       [PyPy 1.4.1] 
-------------------------------------------------------------------- 
*** TKINTER support not available 
--- JPEG support available 
--- ZLIB (PNG/ZIP) support available 
--- FREETYPE2 support available 
*** LITTLECMS support not available 
-------------------------------------------------------------------- 
... 
$ bin/pypy 
Python 2.5.2 (e503e483e9ac, Dec 21 2010, 12:02:29) 
[PyPy 1.4.1] on linux2 
>>>> import Image 
>>>> im = Image.open('/path/to/file.jpg') 
>>>> outfile = open('/path/to/file.png', 'wb') 
>>>> im.save(outfile, 'png') 

Funcionó como un encanto. Entonces haz eso. :)

+0

Sí, lo siento, olvidé mencionar que estoy tratando de usarlo en Windows. – Syl

+0

@Syl: AFAIK eso no debería hacer ninguna diferencia. –

+0

Esto es tan fácil? Leí que el uso de módulos externos de python (módulo api de pyi PIL i c) requiere una herramienta externa, ** cpyext **, que es muy lenta, y no estoy seguro si funciona bien. –

1

no tenía ni easy_install PIP instalado, por lo que siguió las instrucciones en pip's documentation:

wget https://bootstrap.pypa.io/get-pip.py 
pypy get-pip.py 
pypy -m pip install pillow