2013-04-27 9 views
8

पर चलने वाली बोतल नहीं मिल सकती है मुझे bottle में एक वेबसाइट लिखी गई है और मैं इसे अमेज़ॅन के लोचदार बीनस्टॉक के माध्यम से तैनात करना चाहता हूं। मैंने tutorial for deploying flask का पालन किया जो मुझे उम्मीद थी कि यह समान होगा। मैं requirements.txt इस बनाकर बोतल के लिए निर्देशों का अनुकूलन करने की कोशिश की:लोचदार बीनस्टॉक

bottle==0.11.6 

और इस के साथ application.py फ़ाइल के बुनियादी कुप्पी संस्करण की जगह:

from bottle import route, run 
@route('/') 
def hello(): 
    return "Hello World!" 
run(host='0.0.0.0', debug=True) 

मैं इस के लिए अद्यतन संस्करण को ट्यूटोरियल में निर्देशित किया गया था, और जब मैंने eb status लिखा था तो यह कहता है कि यह हरा है, लेकिन जब मैं यूआरएल पर जाता हूं तो कुछ भी लोड नहीं होता है। यह बस वहाँ लटका है। मैंने अंत में दिखाए गए रन() विधि की कोशिश की है क्योंकि यह ऊपर दिखाया गया है और यह भी बोतल हैलो वर्ल्ड एप्लिकेशन (यानी run(host='localhost', port=8080, debug=True)) में लिखा गया है और न ही काम करना प्रतीत होता है। मैंने @route('/hello') दोनों के साथ-साथ @route('/') दोनों की भी कोशिश की।

मैं गया और इसके बजाय फ्लास्क के साथ किया (यानी अमेज़ॅन ट्यूटोरियल की तरह बिल्कुल) और यह ठीक काम करता है। क्या इसका मतलब है कि मैं लोचदार बीनस्टॉक के साथ बोतल का उपयोग नहीं कर सकता? या क्या ऐसा कुछ है जो मैं इसे काम करने के लिए कर सकता हूं?

धन्यवाद एक बहुत, एलेक्स

संपादित करें:

from bottle import route, run, default_app 
application = default_app() 
@route('/') 
def hello(): 
    return "Hello bottle World!" 

if __name__ == '__main__': 
    application.run(host='0.0.0.0', debug=True) 
+0

वाह, आपने मेरा दिन पूरी तरह से बचाया! – jbkkd

उत्तर

7

यह संभव है कि WSGI सर्वर की तलाश में है है: aychedee की मदद से, मैं अंत में निम्नलिखित आवेदन फ़ाइल का उपयोग कर काम करने के लिए मिल गया applicationapplication.py के अंदर परिवर्तनीय? इस तरह मैं समझता हूं कि यह फ्लास्क के लिए काम करता है।

application = bottle.default_app() 

यहां आवेदन चर WSGI application as specified in PEP 333 है। यह एक कॉल करने योग्य है जो पर्यावरण और start_response फ़ंक्शन लेता है। तो फ्लास्क, और बोतल डब्लूएसजीआई एप्लिकेशन में बिल्कुल वही इंटरफ़ेस है।

संभवतः ... लेकिन फिर मैं उलझन में हूं कि आपको और पर कॉल करने की आवश्यकता क्यों है run पर कॉल करें।

+0

हम्म हो सकता है, क्या बीनस्टॉक अपने स्वयं के wsgi सर्वर या फ्लास्क (या बोतल) में बनाया गया है? हैलो वर्ल्ड प्रोग्राम [फ्लास्क के लिए] (http://flask.pocoo.org/docs/quickstart/) में उस एप्लिकेशन ऑब्जेक्ट को बनाना शामिल है, जबकि [बोतल के लिए एक] [http://bottlepy.org/docs/dev/ tutorial.html) नहीं करता है। यकीन नहीं है कि अगर मैं बोतल के लिए किसी भी तरह की एप्लीकेशन ऑब्जेक्ट कर सकता हूं और यह भी काम कर सकता है? –

+0

यूप, आप कोशिश कर सकते हैं। मेरे जवाब में जो लाइन शामिल है वह यह है कि आपको बोतल ढांचे से डब्लूएसजीआई ऐप कैसे मिलता है। – aychedee

+0

ठीक है, मैंने ऐसा किया और थोड़ा और आगे मिला लेकिन अब यह मुझे "आंतरिक सर्वर त्रुटि" दे रहा है, और यह कहता है कि 'अपाचे/2.2.22 (अमेज़ॅन) सर्वर test-env-ppamp7m3yc.elasticbeanstalk.com पोर्ट 80' पर तल। मुझे नहीं पता था कि मैं अपाचे भी चला रहा था, क्या यह अपनी खुद की टेस्ट सर्वर चीज नहीं चल रहा है? –

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