2010-08-13 15 views
24

में वेब प्रवेश द्वार इंटरफेस मैं अंत में यह निष्कर्ष निकाला गया है कि मैं अब बर्दाश्त कर सकते हैं आशा है कि बस के लिए चल रहे Py3k/WSGI आपदा मुद्दों कभी भी जल्द ही सुलझा लिया जाएगा, तो मैं आगे बढ़ने के लिए तैयार हो जाओ की जरूरत है।अजगर 3

दुर्भाग्य से, मेरी उपलब्ध विकल्पों में एक पूरी बहुत बेहतर नहीं है:

  • मैं FastCGI के लिए कुछ अलग अजगर मॉड्यूल वेब चारों ओर बिखरे हुए, उनमें से कोई भी लगता है जबकि ज्यादा हो रही हो रहे हैं (यदि कोई हो) विशेष रूप से पायथन 3.x के संबंध में ध्यान और/या रखरखाव, और यह अंतर करना मुश्किल है कि, यदि कोई है, वास्तव में व्यवहार्य हैं।
  • बिल्ट-इन सीजीआई मॉड्यूल पर वापस आने के लिए सभी तरह से गिरना मुश्किल से खुद को खरोंच से बनाने से बेहतर है (बदतर, वहां एक महत्वपूर्ण बग या दो है जो पाइथन 3.3 तक ध्यान नहीं दे सकता है)।
  • सीधे उत्पादन वेबपैड में HTTP को संभालने से कहीं अधिक पाप नहीं है। और वैसे भी, यह अभी भी पहिया को पुनर्निर्मित कर रहा है।

निश्चित रूप से किसी वहाँ उत्पादन में 3.x पर webapps की तैनाती कर रहा है। आप किस गेटवे इंटरफ़ेस का उपयोग कर रहे हैं, जिसके साथ मॉड्यूल/पुस्तकालय, और क्यों?

+0

मुझे किसी भी बड़े नाम (Django, ट्विस्ट, ज़ोप) के बारे में पता नहीं है जिसमें अभी तक पाइथन 3 बंदरगाह हैं, लेकिन यह निश्चित रूप से एक उपयोगी सवाल है –

+0

@Wayne: ठीक है, मैं "वेब ऐप्स" कहता हूं, लेकिन क्या मैं वर्तमान में ध्यान केंद्रित कर रहा हूं वास्तव में इसका सबसेट है: वेब-आधारित एपीआई (विशेष रूप से वर्तमान प्रोजेक्ट पर एसओएपी, ick)। इसलिए मेरे पास बड़े तृतीय पक्ष ढांचे पर कम निर्भरता है, और मेरा वर्तमान कोड डब्लूएसजीआई परत पर ठीक है। –

+0

ठीक है, मैंने डब्ल्यूएसजीआई के साथ पायथन 3 का उपयोग नहीं किया है, इसलिए मैं आपकी समस्याओं से परिचित नहीं हूं। क्या इसके लिए कोई अच्छा (एक प्रारंभिक गोद लेने वाला बनने के अलावा) इस के लिए Python3 का उपयोग करने का कारण है? –

उत्तर

2

चेरीपी 3.2 रिलीज उम्मीदवार पायथन 3.X का समर्थन करते हैं। चूंकि यह वेब सर्वर इंटरफ़ेस परत पर केवल WSGI का समर्थन करता है और पूरे स्टैक के माध्यम से नहीं, तो आप मुद्दों से अलग होते हैं कि डब्लूएसजीआई बदल जाएगा या नहीं। चेरीपी का अपना आंतरिक डब्लूएसजीआई सर्वर है, लेकिन यह पाइथन 3.1+ के साथ अपाचे/mod_wsgi के तहत भी चलाया जा सकता है। देखें:

http://www.cherrypy.org/wiki/WhatsNewIn32 http://code.google.com/p/modwsgi/wiki/SupportForPython3X

+3

मेरे पास आपके लिए दुनिया में सभी सम्मान हैं, ग्राहम, लेकिन यह जवाब मूल रूप से सुझाव देता है कि मैं एक जटिल ढांचे के प्री-रिलीज संस्करण पर निर्भरता जोड़ता हूं जिसके लिए मेरे पास कोई अन्य उपयोग नहीं है डब्लूएसजीआई से खुद को "इन्सुलेट" करने से (जो कुछ है जो मुझे पहले स्थान पर नहीं चाहिए था)। यह बेहद असंतुष्ट है। अन्य उत्तरों की कमी को ध्यान में रखते हुए, फास्टसीजीआई रैपरों में से एक को गोद लेना/बंद करना और इसे स्वयं बनाए रखना इस बिंदु पर सबसे अधिक व्यापार-व्यवहार्य विकल्प प्रतीत होता है। :( –

+1

मैं आपको केवल वही विकल्प दे रहा हूं जैसा आपने पूछा था। यदि आप उस संस्करण के लिए चेरीपी दस्तावेज पृष्ठ देखते हैं तो यह भी उल्लेख करता है कि यह बेहतर सुधार हुआ है। जिस तरह से मैंने इसे पढ़ा है, क्या यह डब्लूएसजीआई के लिए अपने स्वयं के फास्टसीजी एडाप्टर है और यह अच्छी तरह से हो सकता है यह भी रूप में अच्छी तरह अजगर 3.X पर चलाते हैं। यह खड़ा के रूप में, CherryPy केवल महत्वपूर्ण रूपरेखा है कि Pyyhon 3.X पर चलाने के लिए तो निश्चित रूप से कुछ इसे से सीखा जा सकता है एक तरह से खोजने की कोशिश कर रहा है। केवल अन्य अजगर ढांचे मुझे पता है जो कि पायथन 3.X पर काम करने का दावा करता है, लेकिन यह केवल डब्लूएसजीआई पर काम करता है और अपाचे/mod_wsgi पर निर्भर करता है। –

+0

मैं ग्राहम और अन्य कई टिप्पणीकारों से सहमत हूं: 1. यदि आप पाइथन के साथ रोलिंग कर रहे हैं 3, आपकी एक शुरुआती धारक कर रहे हैं। 2. CherryPy एक अच्छा समाधान है। 3. लोग लिख नहीं किया जाना चाहिए वेब ऐप्स के लिए गैर-फ्रेमवर्क पायथन। केवल ढांचे को पूरी तरह से डब्लूएसजीआई स्तर पर होना चाहिए। –

1

बोतल अजगर 3 का समर्थन करता है, लेकिन यह टूटा stdlib से ग्रस्त है। हालांकि, multipart reimplements cgi.FieldStorage और पाइथन 3 WSGI वेब ऐप बनाने के लिए बोतल के साथ उपयोग किया जा सकता है। मैंने अभी एक demo प्रकाशित किया है। फिलहाल यह सिर्फ एक परीक्षण है, लेकिन जहां तक ​​मैं कह सकता हूं कि यह अच्छी तरह से काम करता है।