Python ctypes MemoryError en el proceso fcgi de la biblioteca PIL

Estoy tratando de ejecutar Django en hosting compartido (Bluehost). Estoy usando una funcionalidad que requiere PIL. PIL importa y trabaja desde una shell interactiva, pero en mi proceso fcgi se bloquea con un error de memoria desde la imagen de importación de PIL. Cualquier ayuda sobre por qué podría estar fallando dentro de fcgi sería muy apreciada.

__Environment Info__: Python2.7 Local installs of libjpg, zlib, freetype, and lcms Virtualenv: Django 1.3, PIL, flup, etc. __Stack Trace__: File ".../feincms_thumbnail.py", line 3, in  from PIL import Image File ".../PIL/Image.py", line 45, in  \__import__("FixTk") File ".../python2.7/lib-tk/FixTk.py", line 15, in  import ctypes File ".../python2.7/ctypes/__init__.py", line 549, in  CFUNCTYPE(c_int)(lambda: None) __.fcgi__:  # setup paths # set DJANGO_SETTINGS_MODULE in os.environ from django.core.servers.fastcgi import runfastcgi runfastcgi(method="threaded", daemonize="false") 

Related of "Python ctypes MemoryError en el proceso fcgi de la biblioteca PIL"

He arreglado temporalmente ese error al comentar la última línea de este archivo $HOME/lib/python2.7/ctypes/__init__.py que es algo así como #CFUNCTYPE(c_int)(lambda: None) .

Eso es un trabajo para mí, pero no sé cuál es exactamente el problema.

ACTUALIZAR

En Python 2.7.3 el número de línea es: 279 no es el último como dije anteriormente.

ACTUALIZACIÓN 2 Dado que la línea puede variar entre las versiones secundarias, debe buscar un fragmento de código que se parezca a esto:

 # XXX for whatever reasons, creating the first instance of a callback # function is needed for the unittests on Win64 to succeed. This MAY # be a compiler bug, since the problem occurs only when _ctypes is # compiled with the MS SDK compiler. Or an uninitialized variable? CFUNCTYPE(c_int)(lambda: None) 

intente ejecutar este comando:

 setsebool -P httpd_tmp_exec on 

Arregla las cosas para mi en CentOS. Tomado de esta publicación: https://bugzilla.redhat.com/show_bug.cgi?id=645193

Solo para ampliar un poco la respuesta de eos87, esto también soluciona el problema para mí, y a juzgar por el comentario antes de esa línea, parece que se agregó como una solución a un error de Windows, pero la solución aparentemente está causando problemas su propio. Aquí está el bit al final de __init__.py :

 # XXX for whatever reasons, creating the first instance of a callback # function is needed for the unittests on Win64 to succeed. This MAY # be a compiler bug, since the problem occurs only when _ctypes is # compiled with the MS SDK compiler. Or an uninitialized variable? CFUNCTYPE(c_int)(lambda: None) 

Parece que es seguro quitarlo.

FWIW, este problema se me apareció en una caja Centos 5.7 x64 cuando utilizaba python 2.6 como instalado (en paralelo con python 2.4) de epel . El archivo se encontró aquí: /usr/lib64/python2.6/ctypes/__init__.py

También tenga en cuenta que la excepción que aparece es un error de memoria que, de acuerdo con strace resulta de una falla de segmentación inmediatamente (aunque quizás coincidentemente) después de una llamada a munmap ; y solo aparece cuando se ejecuta como FastCGI.