আমি সম্প্রতি যখন ব্যবহার করে একটি ইস্যু গাড়ীতে আঘাত 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