मैं एक Google ऐप इंजन प्रोजेक्ट बनाने की कोशिश कर रहा हूं जिसमें विभिन्न मॉड्यूल शामिल हैं, प्रत्येक में विभिन्न संस्करण हैं; फिर भी मैं इसे काम नहीं कर सकता।Google App Engine में एकाधिक मॉड्यूल के कई संस्करणों को सही तरीके से कार्यान्वित कैसे करें?
मैं google modules guide website पर सब कुछ के माध्यम से चला गया लेकिन आवेदन के पदानुक्रम का उनका विवरण बहुत अस्पष्ट है। मैंने यह देखने के लिए एक सरल परीक्षण एप्लिकेशन डाउनलोड किया कि यह कैसे काम करता है (जिसे मैं काम नहीं कर सकता)।
यह अभी आवेदन की संरचना है: http://www.iteratorium.eu/stackoverflow/structure.jpg
और पूरी बात यहाँ ज़िप किया गया है: http://www.iteratorium.eu/stackoverflow/flask_app.zip
तीन मॉड्यूल के होते हैं: डिफ़ॉल्ट, मेरे मॉड्यूल और मोबाइल-दृश्यपटल, और मेरे मॉड्यूल और मोबाइल-फ्रंटेंड दोनों निर्देशिकाओं में v_one और v_two दोनों संस्करण हैं। प्रत्येक संस्करण की अपनी .yaml फ़ाइल होती है, जिसमें एक हैंडलर होता है (परीक्षण उद्देश्यों के लिए इसे सरल रखना)
संरचना कम से कम सही है? जब मैं dev_appserver.py फ़ाइल के माध्यम से एप्लिकेशन लोड करता हूं, तब तक सब ठीक है जब तक कि मैं उसी मॉड्यूल के दो संस्करण लोड नहीं करता। उस मामले में, ऐसा होता है:
ट्रैसबैक में[email protected]_COMPUTER:~/flask_app$ python ~/google_appengine/dev_appserver.py dispatch.yaml app.yaml mobile-frontend/v_one/mobile-frontend.yaml my-module/v_one/my-module.yaml my-module/v_two/my-module.yaml
परिणाम और निम्नलिखित:
google.appengine.tools.devappserver2.errors.InvalidAppConfigError: Duplicate module: my-module
(दोनों संस्करणों किसी भी त्रुटि के बिना appcfg.py के माध्यम से ऐप्लिकेशन इंजन पर अपलोड करने के लिए, यह केवल स्थानीय होस्ट हो सकता है सर्वर कई संस्करणों को संभाल नहीं सकता है)
यदि मैं केवल प्रत्येक मॉड्यूल का एक संस्करण लोड करता हूं, तो सबकुछ काम करता है, लेकिन मॉड्यूल lib निर्देशिका से कुछ भी आयात नहीं कर सकता है। एक्सेस करना टर्मिनल में इस में ब्राउज़र परिणामों के माध्यम से http://localhost:8082/mobiler
:
from flask import Flask
ImportError: No module named flask
मैं appengine_config.py फ़ाइल में lib फ़ोल्डर के लिए पथ परिभाषित लेकिन यह मॉड्यूल के लिए काम करने के लिए प्रतीत नहीं होता। यही वह जगह है जहां मैंने रुक दिया और यहां आने का फैसला किया, क्योंकि मुझे यह भी यकीन नहीं है कि संरचना सही है और मैं इन सब से दूर हो सकता हूं।
तो ... मैं कितना दूर हूं?
import sys
sys.path.insert(0, 'lib')
जैसा कि आपने कहा था, समस्या यह है कि स्थानीय देव सर्वर एक ही समय में उसी मॉड्यूल के संस्करणों को संभाल नहीं सकता है। ऐसा कहा जा रहा है, ऐसा लगता है कि मॉड्यूल appengine_config.py नहीं चला रहे हैं, इसलिए उन्हें सभी – marianosimone