পাইথন সরঞ্জামগুলি আমাদের কাছে প্যাকেজ এবং প্রকল্প বর্ণনা করতে ব্যবহার করা যেতে পারে একটি বিভ্রান্তিকর ইতিহাস রয়েছে: এই অন্তর্ভুক্ত distutilsস্ট্যান্ডার্ড গ্রন্থাগারে, distribute, distutils2, এবং setuptools(এবং হয়তো আরো)। এটি প্রদর্শিত হয় distributeএবং distutils2তাদের পক্ষে বন্ধ করা হয়েছিল setuptools, যা দুটি প্রতিযোগিতামূলক মান ফেলে।
আমার বোধগম্যতার setuptoolsতুলনায় অনেক বেশি বিকল্প প্রস্তাব করা হয়েছে (যেমন নির্ভরতা, পরীক্ষা ইত্যাদি ঘোষণা করা) distutilsতবে পাইথন স্ট্যান্ডার্ড লাইব্রেরিতে (এখনও?) এটি অন্তর্ভুক্ত নয় is
পাইথন প্যাকেজিং ইউজার গাইড [ 1 ] এখন বিশেষ পরামর্শ দেওয়া হচ্ছে:
setuptoolsপ্রকল্পগুলি সংজ্ঞায়িত করতে এবং উত্স বিতরণ তৈরি করতে ব্যবহার করুন ।
এবং ব্যাখ্যা:
যদিও আপনি
distutilsঅনেক প্রকল্পের জন্য খাঁটি ব্যবহার করতে পারেন , এটি অন্যান্য প্রকল্পের উপর নির্ভরতা নির্ধারণের পক্ষে সমর্থন করে না এবং সরবরাহ করা প্যাকেজ মেটাডেটা সঠিকভাবে পপুলেশন করার জন্য বেশ কয়েকটি সুবিধার্থে অনুপস্থিতsetuptools। স্ট্যান্ডার্ড লাইব্রেরির বাইরে থাকায় সেটআপলগুলি পাইথনের বিভিন্ন সংস্করণ জুড়ে আরও সামঞ্জস্যপূর্ণ বৈশিষ্ট্য সরবরাহ করে এবং (বিপরীতেdistutils)setuptoolsসমস্ত সমর্থিত সংস্করণে আসন্ন "মেটাডাটা ২.০" স্ট্যান্ডার্ড ফর্ম্যাটগুলি তৈরি করতে আপডেট করা হবে।এমনকি যে প্রকল্পগুলি ব্যবহার করতে পছন্দ করে তাদের জন্য
distutils, যখন পাইপ সরাসরি উত্স থেকে এই জাতীয় প্রকল্পগুলি ইনস্টল করে (প্রাক বিল্ট হুইল ফাইল থেকে ইনস্টল করার পরিবর্তে), এটি আসলেsetuptoolsপরিবর্তে ব্যবহার করে আপনার প্রকল্প তৈরি করবে ।
যাইহোক, বিভিন্ন প্রকল্পের সেটআপ.পিপি ফাইলগুলি সন্ধান করা প্রকাশ করে যে এটি সত্যিকারের মান বলে মনে হচ্ছে না। অনেক প্যাকেজ এখনও ব্যবহার distutilsএবং সমর্থন ঐ যে setuptoolsপ্রায়ই মিশ্রিত করা setuptoolsসঙ্গে distutilsএকটি ফলব্যাক আমদানি করে যেমন:
try:
from setuptools import setup
except ImportError:
from distutils.core import setup
এরপরে সেটআপ লেখার কোনও উপায় অনুসন্ধান করার চেষ্টা করা হয়েছে যা উভয় setuptoolsএবং দ্বারা ইনস্টল করা যেতে পারে distutils। এতে প্রায়শই ত্রুটি-প্রবণ নির্ভরতা পরীক্ষা করার বিভিন্ন উপায় অন্তর্ভুক্ত থাকে, যেহেতু distutilsসেটআপ ফাংশনে নির্ভরতা সমর্থন করে না।
লোকেরা কেন এখনও সমর্থন করার জন্য অতিরিক্ত চেষ্টা করে distutilsচলেছে - এটিই কি কারণ setuptoolsস্ট্যান্ডার্ড লাইব্রেরিতে নেই? কী কী সুবিধা রয়েছে distutilsএবং সেটআপ.পি ফাইলগুলি লেখার কোনও ত্রুটি রয়েছে যা কেবলমাত্র সমর্থন করে setuptools।
setuptoolsএকটি উন্নত বিকল্প নেই distutilsকিন্তু নোট যে, " প্রস্তাবিত পিপ ইনস্টলার সঙ্গে সব setup.py স্ক্রিপ্ট রান setuptoolsএমনকি যদি স্ক্রিপ্ট নিজেই শুধুমাত্র আমদানি,distutils (" উৎস )
distutilsএতে আবার একীভূত করা হয়েছেsetuptools, তবে এমন লিগ্যাসি অ্যাপ্লিকেশন রয়েছে যা ব্যবহার করার জন্য লেখা হয়েছিলdistutilsএবং মানগুলি সংশোধন করার জন্য মাইগ্রেটে যাওয়ার জন্য জড়িত ব্যয় রয়েছে।