मैं एक टेक्स्ट एडिटर और आईपीथन का उपयोग कर एक पायथन पैकेज विकसित कर रहा हूं। प्रत्येक बार जब मैं कोई मॉड्यूल कोड बदलता हूं तो मुझे इसका परीक्षण करने के लिए दुभाषिया को पुनरारंभ करना होगा। यह एक दर्द है क्योंकि कक्षाएं मैं एक संदर्भ पर भरोसा कर रहा हूं जिसे प्रत्येक रीलोड पर फिर से स्थापित करने की आवश्यकता है।हर बदलाव के बाद दुभाषिया को पुनरारंभ किए बिना पाइथन मॉड्यूल/पैकेज कैसे विकसित करें?
मैं reload()
समारोह के बारे में पता कर रहा हूँ, लेकिन इस frowned upon प्रतीत होता है (यह भी है क्योंकि यह से निकाल दिया गया है एक अंतर्निहित अजगर 3.0 में) और इसके अलावा यह शायद ही कभी काम करता है के बाद से मॉड्यूल लगभग हमेशा कई संदर्भों की है।
मेरा सवाल है - पाइथन मॉड्यूल/पैकेज विकसित करने का सबसे अच्छा/स्वीकार्य तरीका क्या है ताकि मुझे लगातार अपने दुभाषिया संदर्भ को फिर से स्थापित करने के दर्द से गुजरना पड़े?
एक विचार मैंने सोचा था कि एक मॉड्यूल चलाने के लिए if __name__ == '__main__':
चाल का उपयोग कर रहा था ताकि कोड आयात नहीं किया जा सके। हालांकि यह मेरी मॉड्यूल फ़ाइलों के नीचे प्रासंगिक क्रूर (मेरे सेटअप के लिए विशिष्ट) का एक गुच्छा छोड़ देता है।
विचार?
लोड मॉड्यूल लोड करने के लिए% रन का उपयोग शानदार है, धन्यवाद! – Brendan
'dreload() 'ध्वनि भी अच्छा लगता है लेकिन ऐसा लगता है कि यह Numpy के साथ समस्याओं में भाग लेता है - यह भी जो भी मैंने' बहिष्कृत 'कीवर्ड सूची में सेट किया है उसे अनदेखा कर रहा है ... – Brendan
Numpy और' dreload() 'के साथ समस्या है यहां प्रलेखित https://bugs.launchpad.net/ipython/+bug/306805 – Brendan