2008-09-29 14 views
11

के माध्यम से डीबग पिलोन एप्लिकेशन मेरे पास पाइडेव के साथ ग्रहण सेटअप है और प्यार मेरी स्क्रिप्ट/ऐप्स को डीबग करने में सक्षम है। मैंने अभी तक पिलों के साथ खेलना शुरू कर दिया है और सोच रहा था कि ग्रहण के माध्यम से पास्टर सर्वर शुरू करने का कोई तरीका है तो क्या मैं अपना वेबपैब डीबग कर सकता हूं?ग्रहण

उत्तर

10

एक नया लांच विन्यास (अजगर रन)

मुख्य टैब बनाएं

उपयोग paster-script.py मुख्य मॉड्यूल (आप इसे अपने अजगर स्थापना निर्देशिका में स्क्रिप्ट पर सब-निर्देशिका में पा सकते हैं के रूप में)

तर्क 012 PYTHONPATH क्षेत्र में अपने आवेदन के रूट फ़ोल्डर जोड़ने के लिए मत भूलनारूट निर्देशिका को मूल फ़ोल्डर में भी सेट करें।

के रूप में कार्यक्रम तर्क "development.ini सेवा" का उपयोग करें (या जो भी आप अपने अनुप्रयोग "डिबग करने के लिए उपयोग करें)

आम टैब

चेक पृष्ठभूमि में सांत्वना और प्रक्षेपण के आवंटन

2

yanjost है यह सही है, बस यह जोड़ना चाहता था कि आपको यह सुनिश्चित करने की ज़रूरत है कि आप --reload विकल्प का उपयोग नहीं करते हैं, यह डीबगर को स्वयं को ठीक से जोड़ने से रोक देगा और आपके ब्रेकपॉइंट्स को काम न करने का कारण बन जाएगा। बस थोड़ी सी चीज़ में मैंने भाग लिया।

1

linux पर शायद हो/usr/bin/paster या/usr/स्थानीय/bin/पेस्ट स्क्रिप्ट के लिए paster, और तर्क के लिए मैं होगा: $ {workspace_loc} $ {project_path} /development.ini की सेवा

2

मैं डिफॉल्ट टैब का उपयोग न करने के लिए तर्क टैब में 'वर्किंग डायरेक्टरी' को बदलकर काम करना चाहता हूं (यानी 'अन्य' -> फ़ाइल सिस्टम -> 'अपने पिलों का रूट' ऐप चुनें जहां develop.ini संग्रहीत है।

1

मुझे यह काम भी मिला (अंत में)। मैंने पिलोन स्थापित करने के लिए वर्चुअलएन्व के बजाय बिल्डआउट का उपयोग किया (निर्देश: http://wiki.pylonshq.com/display/pylonscommunity/Howto+install+Pylons+with+buildout), इसलिए ऊपर दिए गए निर्देशों को पथ के रूप में थोड़ा बदलना आवश्यक है।

-किसी "मुख्य मॉड्यूल", मैं का उपयोग करें:

${workspace_loc:myeclipseprojectname/bin/paster} 

(जोड़ने --reload breakpoints बनाया मेरे लिए काम नहीं, और मैं इस दो बार परीक्षण किया)

-किसी "कार्यक्रम तर्क ", मैं का उपयोग करें:

serve ${workspace_loc:myeclipseprojectname/mypylonsprojectname/development.ini} 

-किसी" वर्किंग निर्देशिका, अन्य: ", मैं का उपयोग करें:

${workspace_loc:myeclipseprojectname/mypylonsprojectname} 

- ऊपर वर्णित, "सामान्य टैब" में, "कंसोल आवंटित करें और पृष्ठभूमि में लॉन्च करें"

- और कोशिश करने से पहले ब्रेकपॉइंट सेट करना याद रखें।

6

आप बल्कि अपने प्रोजेक्ट की कार्यक्षेत्र में अपने अजगर स्थापना शामिल नहीं हैं तो paster प्राप्त करने के लिए, आप बना सकते हैं की तरह एक शुद्ध पायथन चालक: डिबग

#!/usr/bin/env python 

from paste.script.serve import ServeCommand 

ServeCommand("serve").run(["development.ini"]) 

... और चलाने/कि ग्रहण में।

नोट: यह --reload विकल्प के बिना चल रहा है, इसलिए आपको गर्म तैनाती नहीं मिलती है (यानी, आपको परिवर्तन देखने के लिए सर्वर को पुनः लोड करने की आवश्यकता होगी)। वैकल्पिक रूप से, आप गर्म तैनाती प्राप्त करने के लिए --reload विकल्प जोड़ सकते हैं, लेकिन फिर Pydev आपके ब्रेकपॉइंट्स पर नहीं रुक जाएगा। आपके केक मिल सकता है नहीं है और यह भी खाना ...

ServeCommand("serve").run(["--reload", "development.ini"]) 
+0

यह पिरामिड ऐप्स के लिए भी अद्भुत काम करता है। – Seth

0

यह वास्तव में कैसे ग्रहण में यह करने के लिए के बारे में सवाल का जवाब नहीं है। लेकिन मैं Winpdb के साथ पास्टर सर्वर डीबगिंग कर रहा हूं, जो काफी अच्छा ग्राफिकल पायथन डीबगर है (आप इसे easy_install winpdb के साथ इंस्टॉल कर सकते हैं)।

बस अपने सर्वर उदा .:

winpdb /usr/local/bin/paster serve development.ini 

शुरू करने और चलाने के बटन पर क्लिक करें।

जैसा कि वेने ने कहा, उपयोग --reload विकल्प के लिए आवश्यक है। कम से कम मैं यह जानने में सक्षम नहीं था कि वास्तविक वेबपैप से कैसे जुड़ा हुआ है, जब फोर्कड प्रक्रिया डीबगर को दर्ज करना चाहिए (विभिन्न प्रक्रियाओं को दर्ज करना "कांटा पैरेंट" और "कांटा बच्चा" डीबगर कमांड के साथ नियंत्रित किया जा सकता है)।

+0

मुझे यह भी पता चला कि मेरे मामले पर repoze.profile को सक्षम करने से, बहुत गहरा पुनरावर्तन होता है, जब पास्टर Winpdb के साथ चलाया जाता है। –