2011-09-22 17 views
5

मैं कुछ परीक्षण कोड है urllib2 का उपयोग करता है एक ऑपरेशन मैं आमतौर पर एक ब्राउज़र के माध्यम से प्रदर्शन करेंगे प्रदर्शन करने के लिए (एक webapp के एक भाग के रूप में): वर्चुअलएन्ग के बीच निष्पादन योग्य Urllib2 समस्या।

  • ले जाएँ एक और पेज
  • करने के लिए एक रिमोट वेबसाइट में

    • प्रवेश करें
    • 3 अलग मशीनों, अजगर के विभिन्न संस्करणों लेकिन ठीक उसी के साथ सभी पर (--no-साइट-संकुल के साथ) एक रूप

    मैं 4 अलग, स्वच्छ virtualenvs बना लिया है भरने से एक पोस्ट को पूरा करें पैकेज (पीपी आवश्यकताओं फ़ाइल के माध्यम से), और कोड ओ मेरी स्थानीय विकास मशीन (2.6.1 और 2.7.2) पर दो वर्चुअलएन्व पर काम करता है - यह मेरे उत्पादन वीपीएस पर काम नहीं करेगा

    असफल मामलों में, मैं सफलतापूर्वक लॉग इन कर सकता हूं, आगे बढ़ सकता हूं सही पृष्ठ लेकिन जब मैं फॉर्म जमा करता हूं, तो दूरस्थ सर्वर मुझे बताता है कि एक त्रुटि हुई है - यह एक एप्लिकेशन सर्वर त्रुटि पृष्ठ है ('हम आपका अनुरोध पूरा नहीं कर सके') और वेबसर्वर त्रुटि नहीं।

    • क्योंकि मैं सफलतापूर्वक में लॉग इन करें और किसी दूसरे पृष्ठ छल कर सकते हैं, यह एक सत्र या एक कुकी समस्या हो प्रतीत नहीं होता है - यह अंतिम पोस्ट
    • करने के लिए विशेष है क्योंकि मैं एक पर आपरेशन प्रदर्शन कर सकते हैं सटीक एक ही शीर्षलेख और डेटा के साथ विशेष मशीन, यह
    • का अनुरोध/पोस्टिंग के साथ एक समस्या प्रतीत नहीं होती है क्योंकि मैं अलग-अलग कंपनियों से किराए पर दो अलग-अलग वीपीएस पर कोड का प्रयास कर रहा हूं, ऐसा प्रतीत नहीं होता है वीपीएस भौतिक वातावरण
    • के साथ एक समस्या हो क्योंकि कोड 2 अलग पायथन संस्करणों पर काम करता है, मैं कल्पना नहीं कर सकता कि यह एक असंगत है दोषपूर्ण समस्या

    मैं इस चरण में पूरी तरह से खो गया हूं कि यह क्यों काम नहीं करेगा। मैंने 'चालू-बंद-और-बारी-बारी-बारी' भी किया है क्योंकि मैं नहीं देख सकता कि समस्या क्या हो सकती है।

    मुझे लगता है कि यह अंतिम पोस्ट एक VPS कि दूरस्थ सर्वर पसंद नहीं करता है से आ रही के साथ कुछ हो गया है, लेकिन मैं समझ नहीं कर सकते हैं कि क्या हो सकता है। मुझे लगता है कि URLlib के हुड के नीचे कुछ चल रहा है जो दूरस्थ सर्वर को उत्तर को नापसंद कर रहा है।

    संपादित मैं VPS पर ठीक उसी पायथन संस्करण (2.6.1) स्थापित किया है के रूप में मेरे काम कर स्थानीय प्रतिलिपि पर है और यह दूर से काम नहीं करता है, तो यह से उत्पन्न होने के साथ कुछ होना चाहिए एक वीपीएस यह एचटीपी अनुरोध को कैसे प्रभावित कर सकता है? क्या यह कुछ निम्न स्तर है?

    +0

    क्या वीपीएस पर या लक्षित वेबसाइट पर कोई फ़ायरवॉल चल रहा है? क्या आप कुकीज़ का उपयोग कर रहे हैं, और यदि हां, तो क्या उन्हें उत्पादन में ठीक से लिखा जा रहा है? –

    +0

    नहीं, मैं इसे दो अलग-अलग वीपीएस पर चला रहा हूं और यह या तो काम नहीं करता है, लेकिन मुझे नहीं लगता कि वे फ़ायरवॉल के पीछे हैं। मैं cookielib के साथ कुकीज़ का उपयोग कर रहा हूँ, लेकिन मुझे नहीं लगता कि यह समस्या है क्योंकि कुकीज़ पहले दो परिचालनों (लॉगिन और परिवर्तन पृष्ठ) के लिए काम करती है –

    उत्तर

    0

    ठीक है, ऐसा लगता है कि मुझे क्यों पता है समस्या हो रही थी, लेकिन मैं इसके लिए 100% कारण नहीं हूं।

    मैं बस सर्वर प्रतीक्षा (time.sleep()) करना था के बाद यह 2 अनुरोध 3 अनुरोध करने से पहले (एक और पेज में ले जाएँ) भेजा (एक फ़ॉर्म भरकर एक पोस्ट प्रदर्शन करना) ।

    मुझे नहीं पता कि यह तृतीय पक्ष सर्वर के साथ किसी शर्त की वजह से है, या यदि यह URLlib के साथ किसी प्रकार का विषम मुद्दा है? मेरी विकास मशीन पर काम करने का कारण संभवतया है क्योंकि सर्वर धीमा होने पर सर्वर धीमा था?

    1

    आप urllib2 के लिए debuglevel = 1 सेट करके देखें और देखते हैं कि इसके साथ आता है हो सकता है:

    import urllib2 
    h=urllib2.HTTPHandler(debuglevel=1) 
    opener = urllib2.build_opener(h) 
    ... 
    
    +0

    मैं उन्हें दांत दांत के साथ किया गया है! मैंने काम करने वाले लोगों की तुलना गैर-काम करने वाले लोगों से भी की है और वे काफी समान हैं। मैं कुछ उदाहरणों को संपादित और रखूंगा –

    1

    यह अंधेरे में कुल शॉट है, लेकिन कर रहे हैं अपने VPSs 64-बिट और अपने घर के कंप्यूटर 32 -बीबी, या इसके विपरीत? हो सकता है कि डिफ़ॉल्ट आकार या की accuracies में कोई अंतर सर्वर से बाहर निकल सकता है।

    इसे छोड़कर, क्या आप वेब सर्वर का उपयोग कर रहे सॉफ़्टवेयर स्टैक पर कोई जानकारी ढूंढने का प्रयास कर सकते हैं?

    +0

    अच्छा सुझाव, लेकिन दुर्भाग्य से वे वही हैं! –

    1

    मैं urllib2 (Zimbra के REST API के साथ काम) के साथ इसी तरह के मुद्दों था, अंत में सफलता के साथ pycurl करने लगे।

    पीएस लॉगिन/नेविगेट/पोस्ट के संचालन के लिए, मुझे आमतौर पर Mechanize उपयोगी और उपयोग करने में आसान लगता है। शायद आप इसे एक शो दे सकते हैं।

    +0

    मुझे लगता है कि यह इस चरण में एकमात्र विकल्प हो सकता है। मैंने इसे काम करने के लिए सबकुछ कल्पना करने की कोशिश की है और मैं केवल कल्पना कर सकता हूं कि यह एक अस्पष्ट संगतता मुद्दा है। मैं वास्तव में मैकेनाइज का उपयोग कर रहा था जो उत्कृष्ट है, लेकिन दुर्भाग्य से मेरा मानना ​​है कि यह Urllib2 के शीर्ष पर बैठता है जिसका अर्थ है कि वही समस्या होती है। –