import - Split Python source into separate directories? -


यहां कुछ अन्य पायथन पैकेज हैं जो मेरी कंपनी "foo.com" उपयोग करता है:

  com .foo.bar.web com.foo.bar.lib com.foo.zig.web com.foo.zig.lib com.foo.zig.lib.lib1 com.foo.zig.lib.lib2  < / Pre> 

डिस्क पर स्रोत को स्टोर करने का पारंपरिक तरीका यहां है:

  pysrc / com / foo / bar / web / lib / zig / web / lib / lib1 / lib2 / PYTHONPATH = Pysrc  

लेकिन संगठनात्मक प्रयोजनों (विभिन्न टीमों, विभिन्न संशोधन नियंत्रण, आदि) के लिए, हम इन्हें निम्न रूप में संग्रहित करना चाहते हैं:

  बार / pysrc / Com / foo / bar / web / lib / zig / pysrc / com / foo / zig / web / lib / lib1 / lib2 / PYTHONPATH = बार / pysrc: zig / pysrc  

< मजबूत> सवाल यह है:

क्या संगठन की इस दूसरी विधि के साथ कोई समस्या है?

उदाहरण के लिए, यदि हम import com.foo , जहां पायथन के लिए __ init __.PY

देखेंगे, इन निर्देशिकाओं को सिमलिंक करने का मतलब क्या होगा? उदा।:

  pysrc / com / foo / bar / - & gt; / Bar / pysrc / com / foo / zig / - & gt; में सिमलिंक   

किसी भी सामान्य कोड के संगठनात्मक सुझावों का स्वागत है।

पायथन क्रम में sys.path के माध्यम से जाना होगा (जिसमें पीथोनपाथ और कुछ भी शामिल है), प्रत्येक में com.foo पैकेज की तलाश में सबसे पहले वह पाता है, यह अन्य लोगों के बहिष्कार के लिए उपयोग करेगा, पर्ल या जावा के विपरीत, जो पैकेज नामस्थानों के साथ मिलकर प्रभावी ढंग से विलीन हो जाता है ऐसी कोई चीजें हैं जो आप कर सकते हैं __ पथ __ जो इस व्यवहार को बदलते हैं, लेकिन "प्रथम मैच जीतता है" यह है कि कैसे पायथन बॉक्स से बाहर निकलता है।

जब तक आप सभी कॉम .foo.bar पूरी तरह से बार में / और com.foo.zig के सभी पूरी तरह से zig / में, आपको दूसरे लेआउट के साथ कोई समस्या नहीं होनी चाहिए।


Comments