भीतर config फ़ाइलों तक पहुँचने मैं एक अजगर परियोजना निम्नलिखित संरचना है कि है। (जब मैं एक ज़िप प्रोग्राम का उपयोग करके इसकी जांच करता हूं तो संरचना समान दिखती है।) मजाकिया बात यह है कि, जब मैं अपने आईडीई से पायथन कोड चलाता हूं तो यह ठीक काम करता है और कॉन्फ़िगरेशन फ़ाइलों तक पहुंच सकता है; लेकिन जब मैं अंडे का उपयोग करके इसे एक अलग पायथन लिपि से चलाने की कोशिश करता हूं, तो यह अंडे में कॉन्फ़िगरेशन फ़ाइलों को नहीं ढूंढ सकता है। यदि मैं कॉन्फ़िगरेशन फ़ाइलों को कॉलिंग पाइथन स्क्रिप्ट (अंडे के बाहर) के सापेक्ष निर्देशिका में डालता है, तो यह काम करता है - लेकिन उस तरह की एक आत्मनिर्भर अंडे रखने के उद्देश्य को हरा देती है जिसमें प्रोग्राम की सभी कार्यक्षमता होती है और कहीं से भी कहा जा सकता है। मैं किसी भी वर्ग/मॉड्यूल का उपयोग कर सकता हूं और अंडे से किसी भी कार्य को तब तक चला सकता हूं जब तक कि वे कॉन्फ़िगरेशन फ़ाइलों का उपयोग न करें ... लेकिन यदि वे करते हैं, तो अंडे उन्हें नहीं ढूंढ सकता है और इसलिए कार्य काम नहीं करते हैं।समस्या एक अजगर अंडे
किसी भी मदद की वास्तव में सराहना की जाएगी! हम यहाँ अंडा चीज के लिए नए हैं और वास्तव में नहीं जानते कि कहां से शुरू करना है।
मैं उलझन में हूं ... मैं थोड़ा धीमा हो सकता हूं क्योंकि ये अवधारणाएं मेरे लिए नई हैं इसलिए कृपया मेरे साथ भालू। मुझे अपने पायथन क्लास में कोड बदलना है जो हार्डकोडिंग के बजाय pkg_resources मॉड्यूल का उपयोग करने के लिए कॉन्फ़िगरेशन फ़ाइल का उपयोग करता है? कॉन्फ़िगरेशन फ़ाइल को लोड करने के लिए अब मेरे पास लाइनें हैं config = ConfigParser.RawConfigParser() config.read (".. \\ config \\" + पर्यावरण + "_settings.ini") '... मुझे इसे क्या बदलना चाहिए सेवा मेरे? – froadie
@froadie: यह सही है। आपको 'config.read (resource_stream (__ name__, ".. \\ config \\" + पर्यावरण + "_settings.ini" जैसी कुछ चाहिए।) इसके अलावा, आपको संसाधन प्रबंधन मॉड्यूल आयात करने की आवश्यकता है:' pkg_resources आयात संसाधन_स्ट्रीम 'से –
मैंने कुछ इसी तरह की कोशिश की - 'config.read (pkg_resources.resource_filename (__ name__," .. \\ config \\ "+ पर्यावरण +" _settings.ini "))' संसाधन संसाधन के बजाय resource_filename क्योंकि फ़ाइल नाम लेता है) - और जब मैं इसे चलाता हूं तो यह काम करता है लेकिन मुझे अंडे से कॉल करने का प्रयास करते समय भी एक त्रुटि मिलती है, हालांकि इस बार एक नया - 'KeyError:' myPackageName \\ .. \\ config \\ dev_settings.ini'' – froadie