পাইথন সরঞ্জামগুলি আমাদের কাছে প্যাকেজ এবং প্রকল্প বর্ণনা করতে ব্যবহার করা যেতে পারে একটি বিভ্রান্তিকর ইতিহাস রয়েছে: এই অন্তর্ভুক্ত 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
এবং মানগুলি সংশোধন করার জন্য মাইগ্রেটে যাওয়ার জন্য জড়িত ব্যয় রয়েছে।