সম্পাদনা: একটি উল্ফ রোম্পের মন্তব্যের ভিত্তিতে, আপনি "0" এর পরিবর্তে "1" ব্যবহার করা গুরুত্বপূর্ণ , অন্যথায় আপনি সিস্ট.পথটি ভেঙে ফেলবেন ।
আমি এখন (এক বছরেরও বেশি সময় ধরে) অজগরটি করে যাচ্ছি এবং লোকেরা আপনাকে sys.path.append()
পরিবর্তে কেন ব্যবহারের পরামর্শ দেয় তা নিয়ে আমি সর্বদা বিভ্রান্ত হয়ে পড়েছি sys.path.insert()
। আমাকে প্রদর্শন করুন।
ধরা যাক আমি পাইওয়র্কবুকস নামে একটি মডিউলে (যা আমার কম্পিউটারে ইনস্টলড) কাজ করছি, তবে আমি একই সাথে একটি পৃথক মডিউল নিয়ে কাজ করছি (পাইজব বলি) পাইওয়র্কবুকগুলি অন্তর্ভুক্ত করে। পাইজবটিতে কাজ করার সাথে সাথে পাইওয়র্কবুকগুলিতে আমি যে ত্রুটিগুলি সংশোধন করছি তার ত্রুটিগুলি খুঁজে পাই, তাই আমি একটি বিকাশ সংস্করণ আমদানি করতে চাই।
উভয়কে নিয়ে কাজ করার একাধিক উপায় রয়েছে (উদাহরণস্বরূপ, আমি আমার পাইওয়ার্কবুকস প্রকল্পটি পাইজব্বের অভ্যন্তরে রেখে দিতে পারি) তবে মাঝে মাঝে আমার এখনও সেই পথটি নিয়ে খেলতে হবে। যাইহোক, পাইওয়ার্কবুকস যেখানে রয়েছে সেই ফোল্ডারে আমি কেবল একটি sys.path.append()
করতে পারি না । কেন? কারণ পাইথন আমার ইনস্টলড পাইওয়র্কবুকগুলি প্রথমে খুঁজে পাবে!
এজন্য আপনাকে একটি sys.path.insert করতে হবে (1, পাথ_ টু_দেব_পাঠ্য বইগুলি)
সংক্ষেপে:
sys.path.append(path_to_dev_pyworkbooks)
import PyWorkbooks # does NOT import dev pyworkbooks, imports installed one
বা:
sys.path.insert(1, path_to_dev_pyworkbooks) # based on comments you should use **1 not 0**
import PyWorkbooks # imports correct file
এটি অতীতে আমার জন্য কয়েকটি হ্যাঙ্গআপ সৃষ্টি করেছে এবং আমি সত্যিই এটি চাই যদি আমরা (একটি সম্প্রদায় হিসাবে) সুপারিশ করা শুরু করি sys.path.insert(1, path)
, যেন আপনি ম্যানুয়ালি কোনও পথ সন্নিবেশ করিয়েছেন বলে আমি মনে করি এটি নিরাপদ যে আপনি যে পথটি চান তা বলা নিরাপদ ব্যবহার করা!
নাকি আমার কিছু ভুল আছে? এটি এমন একটি প্রশ্ন যা মাঝে মাঝে আমাকে বিরক্ত করে এবং আমি এটি প্রকাশ্যে চেয়েছিলাম!
sys.path.insert(1, dev_folder)
তবে এটি এখনও ডেভ মডিউলটি খুঁজে পাচ্ছে না, এবং কেবল ইনস্টল করা মডিউলটি ব্যবহার করছে। আমি কিভাবে এটা ঠিক করব?