আমার স্ক্রিপ্টে পূর্ণ একটি ডিরেক্টরি রয়েছে (আসুন আমরা বলি 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
এটি সরাসরি নন-পিক্সিক প্ল্যাটফর্মগুলিতে পোর্ট করবে না, তবে এটি জিনিস পরিষ্কার রাখবে।