2020 সালের মার্চ পর্যন্ত, এই প্রশ্নের অন্যান্য উত্তরগুলির বেশিরভাগই বহু বছরের পুরানো। পাইথন প্যাকেজিংয়ের বিষয়ে আপনি যখন পরামর্শ পান, তখন প্রকাশের তারিখটি মনে রাখবেন এবং পুরানো তথ্যের উপর নির্ভর করবেন না।
পাইথন প্যাকেজিং ইউজার গাইড একটি পঠিত মূল্য। প্রতিটি পৃষ্ঠায় একটি "সর্বশেষ আপডেট" তারিখ প্রদর্শিত হয়, যাতে আপনি ম্যানুয়ালটির অভ্যর্থনা পরীক্ষা করতে পারেন এবং এটি বেশ বিস্তৃত। পাইথন সফটওয়্যার ফাউন্ডেশন এর পাইথন.আর.র একটি সাবডোমেনে এটি হোস্ট করা হয়েছে এটি সত্যই এটির বিশ্বাসযোগ্যতা যুক্ত করে। প্রকল্পের সারাংশ পৃষ্ঠা এখানে বিশেষভাবে প্রাসঙ্গিক।
সরঞ্জামের সংক্ষিপ্তসার:
পাইথন প্যাকেজিং ল্যান্ডস্কেপের সংক্ষিপ্তসার এখানে:
সমর্থিত সরঞ্জামগুলি:
distutils
পাইথনে প্যাকেজিংয়ের জন্য এখনও মানক সরঞ্জাম। এটি স্ট্যান্ডার্ড লাইব্রেরিতে অন্তর্ভুক্ত করা হয়েছে (পাইথন 2 এবং পাইথন 3)। এটি সাধারণ পাইথন বিতরণের জন্য দরকারী তবে বৈশিষ্ট্যের অভাব রয়েছে। এটি distutils
পাইথন প্যাকেজটি প্রবর্তন করে যা আপনার setup.py
স্ক্রিপ্টে আমদানি করা যায় ।
setuptools
ডিস্টুইটিলসের সীমাবদ্ধতাগুলি কাটিয়ে উঠার জন্য তৈরি করা হয়েছিল এবং এটি স্ট্যান্ডার্ড লাইব্রেরিতে অন্তর্ভুক্ত নয়। এটি একটি কমান্ড-লাইন ইউটিলিটি প্রবর্তন করে easy_install
। এটি setuptools
পাইথন প্যাকেজটিও প্রবর্তন করে যা আপনার setup.py
স্ক্রিপ্টে আমদানি করা যায় এবং pkg_resources
পাইথন প্যাকেজ যা আপনার কোডে আমদানি করা যায় কোনও বিতরণ সহ ইনস্টল করা ডেটা ফাইলগুলি সনাক্ত করতে পারে। এর অন্যতম গ্যাটাচ এটি distutils
পাইথন প্যাকেজটিকে বানর-প্যাচ করে । এটি সঙ্গে ভাল কাজ করা উচিত pip
। এটি নিয়মিত প্রকাশ দেখায়।
scikit-build
একটি উন্নত বিল্ড সিস্টেম জেনারেটর যা অভ্যন্তরীণভাবে সংকলিত পাইথন এক্সটেনশানগুলি তৈরি করতে সিএমকে ব্যবহার করে। যেহেতু বিজ্ঞান-বিল্ডটি ডিস্টিলের উপর ভিত্তি করে নয়, এটির আসলে কোনও সীমাবদ্ধতা নেই। নিনজা-বিল্ড উপস্থিত থাকলে, বিজ্ঞান-বিল্ড বিকল্পগুলির চেয়ে তিনগুণ বেশি দ্রুততর প্রকল্পগুলি সংকলন করতে পারে। এটি সঙ্গে ভাল কাজ করা উচিত pip
।
distlib
এমন একটি গ্রন্থাগার যা কার্যকারিতা সরবরাহ করে যা উচ্চ স্তরের সরঞ্জামগুলির মতো ব্যবহৃত হয় pip
।
packaging
এছাড়াও একটি লাইব্রেরি যা উচ্চ স্তরের সরঞ্জামগুলির মতো pip
এবং এর দ্বারা কার্যকারিতা সরবরাহ করেsetuptools
অবমানিত / পরিত্যক্ত সরঞ্জামগুলি:
distribute
একটি কাঁটাচামচ ছিল setuptools
। এটি একই নাম স্থানটি ভাগ করেছে, সুতরাং আপনার যদি বিতরণ ইনস্টল করা থাকে import setuptools
তবে আসলে বিতরণের সাথে বিতরণ করা প্যাকেজটি আমদানি করতে পারে। ডিস্ট্রিবিউটটি সেটআপলগুলিতে ০.7 এ আবার একত্রিত হয়েছিল , সুতরাং আপনাকে আর বিতরণ ব্যবহার করার দরকার নেই। আসলে, পাইপির সংস্করণটি কেবল একটি সামঞ্জস্য স্তর যা সেটআপলগুলি ইনস্টল করে।
distutils2
শ্রেষ্ঠ নিতে একটি প্রচেষ্টা ছিল distutils
, setuptools
এবং distribute
হয়ে পাইথন এর স্ট্যান্ডার্ড লাইব্রেরিতে অন্তর্ভুক্ত মান হাতিয়ার। ধারণাটি ছিল যে distutils2
পুরানো পাইথন সংস্করণগুলির জন্য বিতরণ distutils2
করা হবে packaging
এবং পাইথন ৩.৩ এর নামকরণ করা হবে, এটি এটির স্ট্যান্ডার্ড লাইব্রেরিতে অন্তর্ভুক্ত করবে। এই পরিকল্পনাগুলি ইচ্ছাকৃত হিসাবে যায় নি, তবে এবং বর্তমানে distutils2
এটি একটি পরিত্যক্ত প্রকল্প । সর্বশেষ প্রকাশটি ২০১২ সালের মার্চ মাসে ছিল এবং এর পাইপির হোম পৃষ্ঠাটি তার মৃত্যুর প্রতিফলন করতে অবশেষে আপডেট করা হয়েছে।
অন্যান্য:
অন্যান্য সরঞ্জাম রয়েছে, যদি আপনি আগ্রহী হন, পাইথন প্যাকেজিং ব্যবহারকারী গাইডে প্রকল্পের সংক্ষিপ্তসারগুলি পড়ুন । আমি তাদের সব তালিকা প্রস্তুত করবে না, যে পেজটি পুনরাবৃত্তি, এবং প্রশ্নের উত্তর দাও, যা ছিল মাত্র মিলে রাখার distribute
, distutils
, setuptools
এবং distutils2
।
প্রস্তাবনা:
যদি এই সমস্ত কিছু আপনার কাছে নতুন হয় এবং আপনি কোথায় শুরু করবেন জানেন না, তবে আমি শিখারsetuptools
পাশাপাশি pip
এবং virtualenv
যা সমস্ত একসাথে খুব ভালভাবে কাজ করে তা শেখার পরামর্শ দেব ।
আপনি মধ্যে খুঁজছেন যদি virtualenv
, আপনি এই প্রশ্ন আগ্রহী হতে পারে: মধ্যে পার্থক্য কি venv
, pyvenv
, pyenv
, virtualenv
, virtualenvwrapper
, ইত্যাদি? । (হ্যাঁ, আমি জানি, আমি আপনার সাথে কান্না করছি))