2011-05-06 16 views
11

मैं साझा होस्टिंग (ब्लूहोस्ट) पर Django चलाने की कोशिश कर रहा हूं। मैं कार्यक्षमता का उपयोग कर रहा हूं जिसके लिए पीआईएल की आवश्यकता है। पीआईएल एक इंटरैक्टिव खोल से आयात करता है और काम करता है, लेकिन मेरी एफसीजीआई प्रक्रिया में यह पीआईएल आयात छवि से मेमोरी एरर के साथ दुर्घटनाग्रस्त हो जाता है। एफसीजीआई के अंदर असफल होने पर कोई मदद बहुत सराहना की जाएगी।पायथन सीटीपीएस पीआईएल लाइब्रेरी से fcgi प्रक्रिया में मेमोरी एरर

__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 <module> 
     from PIL import Image 

    File ".../PIL/Image.py", line 45, in <module> 
     \__import__("FixTk") 

    File ".../python2.7/lib-tk/FixTk.py", line 15, in <module> 
     import ctypes 

    File ".../python2.7/ctypes/__init__.py", line 549, in <module> 
     CFUNCTYPE(c_int)(lambda: None) 

__.fcgi__: 

<!-- language: python --> 
    # setup paths 
    # set DJANGO_SETTINGS_MODULE in os.environ 

    from django.core.servers.fastcgi import runfastcgi 
    runfastcgi(method="threaded", daemonize="false") 
+0

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=781578 – osa

उत्तर

23

मैं अस्थायी रूप से इस फाइल $HOME/lib/python2.7/ctypes/__init__.py#CFUNCTYPE(c_int)(lambda: None) की तरह कुछ है कि में अंतिम पंक्ति टिप्पणी की कि त्रुटि तय कर दी है।

यह मेरे लिए काम है, लेकिन मुझे नहीं पता कि वास्तव में समस्या क्या है।

अद्यतन

अजगर 2.7.3 में लाइन नंबर है: 279 पिछले नहीं के रूप में मैं ऊपर कहा।

अद्यतन 2 के बाद से लाइन लघु संस्करणों के बीच भिन्न हो सकते हैं, तो आप कोड का एक हिस्सा है कि कुछ इस तरह दिखता के लिए दिखना चाहिए:

# 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) 
+0

एक वैकल्पिक दृष्टिकोण मैं Django जनहित याचिका के बजाय ImageMagick (उपयोग करने के लिए संशोधित किया था के रूप में https::/इस पोस्ट से लिया /github.com/psidebotham/Django-1.3-ImageMagick-Mod)। मैं आपके दृष्टिकोण को अगले दिन या दो में देखने का प्रयास करूंगा ताकि यह देखने के लिए कि यह मेरे लिए काम करता है या नहीं। – Peter

+0

+1 - हैकी, लेकिन काम करता है। क्या इस मुद्दे की सूचना मिली है? बहुत बुरा बग, उम्मीद है कि कोई इस पर काम कर रहा है। – shacker

2

बस विस्तार करने के लिए एक सा eos87 के जवाब पर, यह करता है मेरे लिए भी समस्या ठीक करें, और उस पंक्ति से पहले टिप्पणी द्वारा निर्णय लेना, ऐसा लगता है जैसे इसे विंडोज़ बग के कामकाज के रूप में जोड़ा गया था, लेकिन कामकाज स्पष्ट रूप से स्वयं की परेशानी पैदा कर रहा है। यहाँ __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) 

ऐसा लगता है कि इसे हटाने के लिए सुरक्षित है।

एफडब्ल्यूआईडब्ल्यू, यह समस्या epel से स्थापित पायथन 2.6 (पाइथन 2.4 के साथ समानांतर में) के रूप में उपयोग करते समय मेरे लिए एक केंद्र 5.7 x64 बॉक्स पर दिखाई देती है। फ़ाइल यहाँ पाया गया था: /usr/lib64/python2.6/ctypes/__init__.py

भी ध्यान रखें कि अपवाद है कि पता चलता है एक MemoryError है जो करने के लिए strace परिणाम एक विभाजन गलती तुरंत से अनुसार (हालांकि शायद संयोग) munmap के लिए एक कॉल के बाद; और यह केवल FastCGI के रूप में चलते समय दिखाई देता है। CentOS पर मेरे लिए

setsebool -P httpd_tmp_exec on 

फिक्स बातें:

+1

मैंने इसे थोड़ा अलग हल किया है - https://bugzilla.redhat.com/show_bug.cgi?id=717404 – Zart

2

इस आदेश चलाने की कोशिश करें। https://bugzilla.redhat.com/show_bug.cgi?id=645193

+0

देखें यह केवल तभी काम करेगा, यदि आपके सेटअप में, SELinux सक्षम है। अन्य मामलों में, हमें लगता है कि मुझे लगता है कि अन्य उत्तरों पर भरोसा करना होगा .... –

संबंधित मुद्दे