2011-09-21 21 views
19

पर दिखाई नहीं दे रहा है मैंने चेरीपी का उपयोग करके एक पायथन वेब ऐप बनाया है, और मेरी स्थानीय मशीन पर तैनात किया है।पाइथन (चेरीपी) वेब ऐप स्थानीय रूप से तैनात है, लेकिन इंट्रानेट

जब मैं इसे घर में किसी अन्य कंप्यूटर से देखने की कोशिश करता हूं, तो कुछ भी वापस नहीं आता है।

हालांकि

, अगर मैं एक साधारण html फ़ाइल बनाते हैं, और इसके साथ ही नियोजित करें:

$ python -m SimpleHTTPServer 

यह इंट्रानेट से अधिक दिख रहा है।

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

मैंने कॉन्फ़िगरेशन फ़ाइल का उपयोग नहीं किया है, मैं डिफ़ॉल्ट चेरीपी सेटिंग्स का उपयोग कर रहा हूं।

उत्तर

27

डिफ़ॉल्ट सेटिंग्स स्थानीयहोस्ट से जुड़ी हो सकती हैं, जो सार्वजनिक रूप से उपलब्ध नहीं है। यदि आप चेरीपी को सार्वजनिक इंटरफेस पर चलाने के लिए चाहते हैं, तो आपको इसे करने के लिए इसे निर्देशित करना होगा। this discussion से मैंने पाया:

cherrypy.config.update(
    {'server.socket_host': '10.149.4.240' }) # Pub IP 
cherrypy.quickstart() 

या

cherrypy.config.update(
    {'server.socket_host': '0.0.0.0'})  
cherrypy.quickstart() 

सभी इंटरफ़ेस करने के लिए बाध्य करने के लिए।

+1

आपको 0.0.0.0 के साथ ठीक होना चाहिए। यह मूल रूप से आपका स्थानीय कंप्यूटर है, सार्वजनिक रूप से सुलभ (जबकि डिफ़ॉल्ट 127.0.0.1 आपका स्थानीय कंप्यूटर है, सार्वजनिक रूप से सुलभ नहीं है)। – Dave

+2

इस उत्तर को स्पष्ट करने के लिए, सॉकेट होस्ट को कॉन्फ़िगर करने का एक तरीका है 'cherrypy.config.update ({' server.socket_host ':' 0.0.0.0 '}' 'को कॉल करने से पहले' cherrypy.quickstart() 'को कॉल करने से पहले। एक विन्यास फाइल भी इस्तेमाल किया जा सकता है। –