আমি সম্প্রতি যখন ব্যবহার করে একটি ইস্যু গাড়ীতে আঘাত pipএর -Iপতাকা যে আমি দলিল কোথাও তৈরি করতে চেয়েছিলাম:
-Iহবে নাএগিয়ে যাওয়ার আগে বিদ্যমান প্যাকেজটি আনইনস্টল ; এটি কেবল পুরানোটির উপরে এটি ইনস্টল করবে। এর অর্থ হ'ল সংস্করণগুলির মধ্যে মুছতে হবে এমন কোনও ফাইল পরিবর্তে সে জায়গায় রেখে দেওয়া হবে। এই ফাইলগুলি অন্য ইনস্টল করা মডিউলগুলির সাথে নামগুলি ভাগ করে নিলে এটি অদ্ভুত আচরণের কারণ হতে পারে।
উদাহরণস্বরূপ, যাক এর নামে একটি প্যাকেজ আছে package। যে কোনও একটি packageফাইলে তারা ব্যবহার করে import datetime। এখন, package@2.0.0এটি স্ট্যান্ডার্ড লাইব্রেরি datetimeমডিউলটিতে নির্দেশ করে তবে এতে package@3.0.0তারা একটি স্থানীয় datetime.pyস্ট্যান্ডার্ড লাইব্রেরি সংস্করণ (যে কারণেই হোক না কেন) প্রতিস্থাপন হিসাবে যুক্ত করেছিল ।
এখন বলি আমি চালাচ্ছি pip install package==3.0.0, তবে পরে বুঝতে পারি যে আমি আসলে সংস্করণ চাইছি 2.0.0। যদি আমি এখন চালানো pip install -I package==2.0.0, পুরাতন datetime.pyফাইল সরানো হবে না, তাই কোনো কলimport datetime ভুল মডিউল আমদানি করবে।
আমার ক্ষেত্রে এটি অদ্ভুত সিনট্যাক্স ত্রুটিগুলির সাথে প্রকাশ পেয়েছে কারণ প্যাকেজের নতুন সংস্করণে এমন একটি ফাইল যুক্ত হয়েছিল যা কেবল পাইথন 3 এর সাথে সামঞ্জস্যপূর্ণ ছিল এবং আমি যখন পাইথন 2 সমর্থন করার জন্য প্যাকেজ সংস্করণগুলি ডাউনগ্রেড করেছিলাম তখন আমি পাইথন -3-কেবলমাত্র মডিউলটি আমদানি করেই চলি।
এর ভিত্তিতে, আমি যুক্তি দিয়ে বলব যে -Iইনস্টল করা প্যাকেজ সংস্করণ আপডেট করার সময় পুরানো প্যাকেজটি আনইনস্টল করা সর্বদা ব্যবহারযোগ্য ।
pip install MySQL_python==1.8.9