एक अन्य डेवलपर और मैं इस बात से असहमत हैं कि पायथन को sys.path का उपयोग किया जाना चाहिए ताकि पायथन को उपयोगकर्ता (जैसे, विकास) निर्देशिका में पायथन पैकेज मिल सके।
हम एक ठेठ निर्देशिका संरचना के साथ एक पायथन परियोजना है:
Project
setup.py
package
__init__.py
lib.py
script.py
Script.py में, हमें करने की आवश्यकता है import package.lib
। जब पैकेज साइट-पैकेज में स्थापित हो जाता है, तो script.py पा सकता है package.lib
।
उपयोगकर्ता निर्देशिका से काम करते समय, हालांकि, कुछ और किया जाना चाहिए। मेरा समाधान "~ / प्रोजेक्ट" को शामिल करने के लिए अपने PYTHONPATH को सेट करना है। एक अन्य डेवलपर स्क्रिप्ट की शुरुआत में कोड की इस लाइन को डालना चाहता है:
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
ताकि पायथन को स्थानीय प्रति मिल सके package.lib
।
मुझे लगता है कि यह एक बुरा विचार है, क्योंकि यह लाइन केवल डेवलपर्स या स्थानीय कॉपी से चलने वाले लोगों के लिए उपयोगी है, लेकिन मैं एक अच्छा कारण नहीं दे सकता कि यह एक बुरा विचार क्यों है।
क्या हमें PYTOHNPATH, sys.path का उपयोग करना चाहिए, या तो ठीक है?