मेरे पास स्क्रिप्ट से भरा एक निर्देशिका है (चलो कहते हैं project/bin
)। मेरे पास एक पुस्तकालय भी है, project/lib
और स्क्रिप्ट को स्वचालित रूप से लोड करना चाहते हैं। यह वही है जो मैं आमतौर पर प्रत्येक स्क्रिप्ट के शीर्ष पर उपयोग करता हूं:
#!/usr/bin/python
from os.path import dirname, realpath, sep, pardir
import sys
sys.path.append(dirname(realpath(__file__)) + sep + pardir + sep + "lib")
# ... now the real code
import mylib
यह एक प्रकार का बोझिल, बदसूरत है, और इसे हर फ़ाइल की शुरुआत में चिपकाया जाना है। क्या ऐसा करने के लिए इससे अच्छा तरीका है?
वास्तव में मैं जिस चीज की उम्मीद कर रहा हूं वह कुछ इस तरह चिकनी है:
#!/usr/bin/python
import sys.path
from os.path import pardir, sep
sys.path.append_relative(pardir + sep + "lib")
import mylib
या इससे भी बेहतर, कुछ ऐसा नहीं होगा जो मेरे संपादक (या किसी और के पास, जिसने पहुंच बनाई हो) अपनी साफ-सफाई की प्रक्रिया के तहत आयात को फिर से शुरू करने का फैसला करता है:
#!/usr/bin/python --relpath_append ../lib
import mylib
यह सीधे नॉन-पॉसिक्स प्लेटफार्मों पर पोर्ट नहीं करेगा, लेकिन यह चीजों को साफ रखेगा।