2011-01-24 6 views
5

संभव डुप्लिकेट:
In Python, how can I test if I'm in Google App Engine SDK?मेरा कोड कैसे बता सकता है कि यह Google के सर्वर या मेरे स्थानीय विकास सर्वर पर चल रहा है या नहीं?

वहाँ एक वातावरण झंडा कि यदि मेरे कोड उत्पादन में या विकास सर्वर पर चल रहा है बता देंगे है?

मैं इस ध्वज के आधार पर कुछ अलग करने के लिए एक कथन का उपयोग करने में सक्षम होना चाहता हूं।

(विशिष्ट मामले:। एक पाठ फ़ाइल मैं पढ़ने के लिए दो वातावरण में अलग व्यवहार किया जाता चाहते में नई-पंक्तियों)

उत्तर

17
if os.environ.get('SERVER_SOFTWARE','').startswith('Development'): 
    DEBUG = True 
    logging.debug("[*] Debug info activated") 
+2

** जाना ** एक तरह से thats google_appengine एसडीके में SERVER_SOFTWARE की देखभाल करें और आपको उस परीक्षण को ~ 8 कॉल मिलेगा – lukmdo

1

Google अनुप्रयोग इंजन के लिए, के बाद से मुझे बताया गया है कि आप आयात नहीं कर सकते सॉकेट आप यह निर्धारित करने के लिए शायद उस तथ्य का उपयोग कर सकते हैं कि आप GAE पर चल रहे हैं या नहीं। यह समाधान 100% मूर्खतापूर्ण नहीं है, लेकिन यह वही करना चाहिए जो आप चाहते हैं। इसे सेटिंग.py में रखें।

try: 
    import socket 
except ImportError: 
    DEBUG = TRUE 

किसी भी व्यक्ति के लिए Django का उपयोग करने के लिए, लेकिन GAE नहीं, आप इसके बजाय इसका उपयोग कर सकते हैं। अपने विकास सर्वर का होस्टनाम जो भी हो, उसे 'devserver' बदलें। बहुत बुरा गूगल की तरह है कि एक :(बस एक साधारण funncion प्रदान नहीं करता है -

import socket 
if socket.gethostname() == 'devserver': 
    DEBUG = TRUE 

फिर भी आप अपने कोड में डीबग चर जांच करने की आवश्यकता

from django.conf import settings 

if settings.DEBUG: 
    newline = '\n' 
+0

डाउनवॉट्स क्यों? – jonescb

+0

मुझे नहीं लगता कि ऐप इंजन आपको सॉकेट आयात करने की अनुमति देता है। आप अपनी पोस्ट को संपादित करना चाहेंगे ताकि गलत जानकारी फैल न सके (मैंने आपको उकसाया क्योंकि मुझे नहीं लगता कि लोगों को कम करना चाहिए और कोई कारण नहीं देना चाहिए।) – mcotton

+0

ओह धन्यवाद। मैं जीएई का उपयोग नहीं करता, बी यह सादा Django के लिए काम करता है। मुझे एहसास नहीं हुआ कि जीएई कितना सीमित था। – jonescb

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

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