আমি একটি পাইথন প্লাগইন বিকাশ করছি, লক্ষ্যটি পাইজিআই পাইথন লাইব্রেরির ক্রিয়াকলাপগুলিকে কিউজিআইএসে একীভূত করছে যার নাম 'এলিভেশন'।
বাহ্যিক পাইথন লাইব্রেরি ইনস্টল করার এবং পাইথন প্লাগইনগুলিতে সেগুলি উপলব্ধ করার কোনও ওএসের স্বাধীন উপায় আছে কি?
বাহ্যিক পাইথন নির্ভরতা ইনস্টল করার জন্য আমি ইতিমধ্যে বিভিন্ন সিস্টেমের নির্দিষ্ট পদ্ধতিগুলি জানি, আমি যা করতে চাই তা হ'ল মানুষকে পাগল না করে আমার প্লাগইনকে বিভিন্ন পরিবেশে বিতরণ করা।
আমি ইতিমধ্যে যা জানি
ওয়েব এবং অন্যান্য অনুরূপ প্রশ্নগুলি অনুসন্ধান করা দেখে মনে হচ্ছে কোনও ওএস স্বাধীন সমাধান নেই।
উইন্ডোজ ব্যবহারকারীরা
পাইথনটি প্যাকেজ করা হয় এবং কিউজিআইএস প্যাকেজের ভিতরে বিতরণ করা হয়, সুতরাং বাহ্যিক পাইথন লাইব্রেরি ইনস্টল করতে আপনাকে ওএসজিও 4 ডাব্লু শেলটি দিয়ে যেতে হবে এবং সেখান থেকে পাইপ ব্যবহার করতে হবে।
সম্পর্কিত লিংক:
- কিউজিআইএস একক এবং পাইথন মডিউল
- OSGeo4W পাইথনে পাইথন সেটআপলগুলি ইনস্টল করা
- উইন্ডোজে কিউজিআইএসের জন্য তৃতীয় পক্ষের পাইথন লাইব্রেরি কীভাবে ইনস্টল করবেন?
ওএস এক্স ব্যবহারকারীগণ
এক্ষেত্রে কিউজিআইএস বিল্ট-ইন পাইথন ব্যবহার করে যা ওএস এক্সের অভ্যন্তরে প্রিপেইকড এবং এখানে অবস্থিত:
/usr/bin/python
এখানে সমস্যাটি হ'ল ডিফল্ট ইনস্টলড পাইপের কিছু সীমাবদ্ধতা রয়েছে এবং এর জন্য অনেকগুলি সুবিধার দরকার।
পাইথন ইনস্টল করার জন্য একটি দ্রুত কাজ করা হ'ল যাতে আপনার পিপটি ব্যবহারকারী-পরিবর্তনযোগ্য পাইথন কাঠামোর বিরুদ্ধে চলে। এই পদ্ধতির বিশদটি এখানে দেখুন ।
পাইপের মাধ্যমে সমস্ত পাইথন লাইব্রেরি ইনস্টল করার পরে, আপনাকে কেবল তাদের PATH ভেরিয়েবলের ডিরেক্টরি যুক্ত করতে হবে।
ওএস এক্স ব্যবহারকারীদের জন্য বিকল্প উপায়
পাইথন কোড প্লাগইনের ভিতরে আপনি প্রয়োজনীয় প্যাকেজগুলি ইনস্টল করতে সিস্টেমের সরবরাহিত পাইপটি ব্যবহার করতে পারেন। তারপরে আপনি স্রেফ ইনস্টল করা প্যাকেজটিকে এটিকে পাথে যুক্ত করতে সক্ষম করে তুলতে পারেন।
import sys
import pip
pip.main(['install','--target=/Devel/test', 'elevation'])
sys.path.append("/Devel/test")
হোমমেড কিন্তু ওয়ার্কিং সলিউশন (লিনাক্স এবং ওএস এক্স উভয়ের জন্য পরীক্ষিত)
প্লাগইন আপডেট এবং রক্ষণাবেক্ষণটি প্লাগইন থেকে পৃথক রাখতে দেয় বলে আমি বিকল্প পথে যাওয়ার সিদ্ধান্ত নিয়েছি। প্রতিবার কোনও নতুন ব্যবহারকারী প্লাগইন ইনস্টল করলে উচ্চতার লাইব্রেরির সর্বশেষতম সংস্করণটি সরাসরি প্লাগইনের একটি উপ-ডিরেক্টরিতে পাইপ দ্বারা ডাউনলোড এবং ইনস্টল করা হয়।
self.plugin_dir = os.path.dirname(__file__)
self.elevation_dir = os.path.join(self.plugin_dir, 'elevation')
# Checking the presence of elevation library
try:
import elevation
except:
pip.main(['install', '--target=%s' % self.elevation_dir, 'elevation'])
if self.elevation_dir not in sys.path:
sys.path.append(self.elevation_dir)