উত্তর:
দ্রষ্টব্য: ডিমের প্যাকেজিং হুইল প্যাকেজিং দ্বারা ছাড়িয়ে গেছে।
.jar
জাভাতে ফাইল হিসাবে একই ধারণা , এটি একটি .zip
ফাইল যা কিছু মেটাডেটা ফাইলের নাম বদলে দেওয়া হয়েছে .egg
, কোডটিকে বান্ডিল হিসাবে বিতরণ করার জন্য।
বিশেষত: পাইথন ডিমের অভ্যন্তরীণ কাঠামো
একটি "পাইথন ডিম" একটি লজিক্যাল কাঠামো যা পাইথন প্রকল্পের কোড, সংস্থান এবং মেটাডাটা সমন্বিত একটি নির্দিষ্ট সংস্করণের প্রকাশকে মূর্ত করে তোলে। একাধিক ফর্ম্যাট রয়েছে যা পাইথন ডিমটি শারীরিকভাবে এনকোড করার জন্য ব্যবহার করা যেতে পারে এবং অন্যগুলি বিকাশ করা যায়। তবে পাইথন ডিমের মূল নীতি হ'ল এগুলি আবিষ্কারযোগ্য এবং আমদানিযোগ্য হওয়া উচিত। এটি হ'ল পাইথন অ্যাপ্লিকেশনের পক্ষে কোনও সিস্টেমে ডিম কী রয়েছে তা সহজেই এবং দক্ষতার সাথে খুঁজে পাওয়া এবং পছন্দসই ডিমের সামগ্রীগুলি আমদানযোগ্য able
.egg
বিন্যাস বন্টন এবং সহজ আনইনস্টল বা কোডের আপগ্রেড উত্তমরুপে উপযুক্ত হয়, যেহেতু প্রকল্প মূলত স্বয়ংসম্পূর্ণ একটি একক ডিরেক্টরি বা ফাইল মধ্যে, অন্য কোন প্রকল্প 'কোড বা সম্পদ সঙ্গে unmingled হয়। এটি একই সাথে কোনও প্রকল্পের একাধিক সংস্করণ ইনস্টল করাও সম্ভব করে তোলে যেমন পৃথক প্রোগ্রামগুলি তারা ব্যবহার করতে চান এমন সংস্করণগুলি নির্বাচন করতে পারে।
.egg
ফাইল পাইথন প্যাকেজের জন্য একটি বিতরণ ফরম্যাট। এটি কেবল উত্স কোড বিতরণ বা উইন্ডোজ এর বিকল্প exe
। কিন্তু লক্ষ করুন যে, বিশুদ্ধ জন্য Python
, .egg
ফাইল সম্পূর্ণরূপে ক্রস প্ল্যাটফর্ম।
.egg
ফাইল নিজেই মূলত একটি হল .zip
ফাইল। আপনি যদি এক্সটেনশানটিকে " zip
" এ পরিবর্তন করেন তবে আপনি দেখতে পাবেন এটিতে সংরক্ষণাগারের ভিতরে ফোল্ডার থাকবে ers
এছাড়াও, আপনার যদি কোনও .egg
ফাইল থাকে তবে আপনি এটি ব্যবহার করে প্যাকেজ হিসাবে ইনস্টল করতে পারেনeasy_install
উদাহরণ: .egg
একটি ডিরেক্টরি তৈরির জন্য একটি ফাইল তৈরি করতে বলুন mymath
যার মধ্যে নিজেই বেশ কয়েকটি পাইথন স্ক্রিপ্ট থাকতে পারে, নিম্নলিখিত পদক্ষেপটি করুন:
# setup.py
from setuptools import setup, find_packages
setup(
name = "mymath",
version = "0.1",
packages = find_packages()
)
তারপরে, টার্মিনাল থেকে করুন:
$ python setup.py bdist_egg
এই আউটপুট অনেক উত্পন্ন করবে, কিন্তু আপনার এটি সম্পন্ন আপনি দেখতে পাবেন যে আপনি তিন নতুন ফোল্ডারসমূহ: বিল্ড , Dist এবং mymath.egg-তথ্য । আমাদের কেবলমাত্র ফোল্ডারটিই যত্নশীল সেই ডিস্ট ফোল্ডারটি যেখানে আপনি নিজের .egg
ফাইলটি খুঁজে পাবেন যেখানে mymath-0.1-py3.5.egg
আপনার ডিফল্ট পাইথন (ইনস্টলেশন) সংস্করণ নম্বর রয়েছে (আমার এখানে: 3.5)
সূত্র: পাইথন লাইব্রেরি ব্লগ
পাইথন ডিমগুলি পাইথন প্রকল্পের সাহায্যে অতিরিক্ত তথ্য বান্ডিল করার একটি উপায় যা প্রকল্পের নির্ভরতাগুলি রানটাইমের সময় যাচাই করতে এবং সন্তুষ্ট করার পাশাপাশি প্রকল্পগুলিকে অন্যান্য প্রকল্পের জন্য প্লাগিন সরবরাহ করার অনুমতি দেয়। ডিমগুলি প্রতিবিম্বিত করে এমন বেশ কয়েকটি বাইনারি ফর্ম্যাট রয়েছে তবে সর্বাধিক সাধারণ '.egg' জিপফাইলে ফর্ম্যাট কারণ এটি প্রকল্পগুলি বিতরণের জন্য একটি সুবিধাজনক। প্যাকেজ-নির্দিষ্ট ডেটা, প্রকল্প-প্রশস্ত মেটাডেটা, সি এক্সটেনশান এবং পাইথন কোড সহ সমস্ত ফর্ম্যাট সমর্থন করে।
পাইথন ডিম ইনস্টল ও ব্যবহারের সবচেয়ে সহজ উপায় হল "ইজি ইনস্টল" পাইথন প্যাকেজ ম্যানেজার ব্যবহার করুন, যা আপনার জন্য ডিম খুঁজে পাবে, ডাউনলোড করবে, তৈরি করবে এবং ইনস্টল করবে; আপনি যা করতে চান তা হ'ল আপনি যে পাইথন প্রকল্পটি ব্যবহার করতে চান তার নাম (এবং optionচ্ছিকভাবে সংস্করণ) tell
পাইথন ডিমগুলি পাইথন ২.৩ এবং তার সাথে বেশি ব্যবহার করা যেতে পারে এবং সেটআপটুলস প্যাকেজ ব্যবহার করে তৈরি করা যেতে পারে (উত্স কোডের জন্য পাইথন সাবভার্সন স্যান্ডবক্স, বা বর্তমান ইনস্টলেশন সংক্রান্ত নির্দেশাবলীর জন্য ইজিইনস্টল পৃষ্ঠা দেখুন)।
পাইথন ডিমের প্রাথমিক উপকারিতা হ'ল:
তারা পাইথন প্যাকেজ পরিচালকের "ইজি ইনস্টল" এর মতো সরঞ্জামগুলিকে সক্ষম করে
.egg ফাইলগুলি পাইথন প্যাকেজের জন্য একটি "শূন্য ইনস্টলেশন" ফর্ম্যাট; কোনও বিল্ড বা ইনস্টল পদক্ষেপের প্রয়োজন নেই, কেবল তাদের পাইথনপথ বা সিএস.পথে রাখুন এবং সেগুলি ব্যবহার করুন (সি এক্সটেনশানস বা ডেটা ফাইল ব্যবহার করা হলে রানটাইম ইনস্টল হওয়া প্রয়োজন হতে পারে)
তারা অন্যান্য ডিমের মতো প্যাকেজ মেটাডেটা অন্তর্ভুক্ত করতে পারে
তারা "নামস্থান প্যাকেজ" (প্যাকেজ যে শুধু অন্যান্য প্যাকেজ ধারণ) পৃথক ডিস্ট্রিবিউশন বিভক্ত করা করার জন্য (অনুমতি উদাঃ zope। , পাকান। , শিখর। * প্যাকেজ আলাদা ডিম হিসাবে বিতরণ করা যেতে পারে স্বাভাবিক প্যাকেজ যা সবসময় একই অধীনে স্থাপন করা আবশ্যক অসদৃশ অভিভাবক ডিরেক্টরি This এটি এখন বিশাল মোনালিথিক প্যাকেজগুলি পৃথক উপাদান হিসাবে বিতরণ করার অনুমতি দেয়)
তারা অ্যাপ্লিকেশন বা গ্রন্থাগারগুলিকে একটি লাইব্রেরির প্রয়োজনীয় সংস্করণ নির্দিষ্ট করার মঞ্জুরি দেয়, যাতে আপনি উদাহরণস্বরূপ ("ট্যুইস্টেড-ইন্টারনেট> = ২.০") প্রয়োজন হতে পারে একটি আমদানি মোচড়ানো ইন্টারনেটের কাজ করার আগে।
এক্সটেনসিবল অ্যাপ্লিকেশন এবং ফ্রেমওয়ার্কগুলিতে এক্সটেনশন বা প্লাগইন বিতরণের জন্য এগুলি দুর্দান্ত ফর্ম্যাট (যেমন ট্র্যাক, যেটি 0.9b1 হিসাবে প্লাগইনগুলির জন্য ডিম ব্যবহার করে), কারণ ডিম রানটাইম ডিমগুলি সনাক্ত করতে এবং তাদের বিজ্ঞাপনযুক্ত এন্ট্রি পয়েন্টগুলি সন্ধানের জন্য সহজ API সরবরাহ করে (অনুরূপ Eclipse এর "এক্সটেনশন পয়েন্ট" ধারণাটিতে)।
জাভা "জার" ফর্ম্যাটের সুবিধার অনুরূপ মানকযুক্ত ফর্ম্যাট থাকা থেকে অন্যান্য সুবিধাও আসতে পারে।
"ডিম" পাইথন-সম্পর্কিত প্রকল্পগুলির জন্য একটি একক-ফাইল আমদানিযোগ্য বিতরণ বিন্যাস।
"পাইথন ডিমগুলিতে দ্রুত গাইড" নোট করে যে "ডিম পাইথনগুলিতে যেমন জার জাভাতে হয় ..."
ডিম আসলে জারের চেয়ে সমৃদ্ধ; তারা আকর্ষণীয় মেটাডেটা যেমন লাইসেন্সের বিবরণ, রিলিজ নির্ভরতা ইত্যাদির মতো ধারণ করে hold