zipapp মডিউল পাইথন ৩.৫以降 স্ট্যান্ডার্ড লাইব্রেরিতে যোগ করা হয়েছে। এই মডিউল পাইথন কোড সম্বলিত জিপ ফাইল তৈরি ও পরিচালনা করতে ব্যবহৃত হয়, যেগুলো পাইথন ইন্টারপ্রিটার দিয়ে সরাসরি এক্সিকিউট করা যায়। মডিউলটি কমান্ড-লাইন ইন্টারফেস ও প্রোগ্রাম্যাটিক ইন্টারফেস উভয় প্রদান করে।
প্রোগ্রাম্যাটিকভাবে zipapp ব্যবহার করতে হলে একটি মডিউল থাকতে হবে যাতে main ফাংশন রয়েছে। এক্সিকিউটেবল আর্কাইভ নিচের কমান্ড দিয়ে বিল্ড করা হয়:
python -m zipapp myapp -m "example:main"
এখানে, করেন্ট প্যাথে myapp নামে একটি ফোল্ডার থাকতে হবে। এই ফোল্ডারের ভিতরে example.py থাকতে হবে যাতে main() ফাংশন রয়েছে।
myapp ফোল্ডার তৈরি করে নিচের কোড example.py-এ সেভ করুন:
def main():
print('Hello World')
if __name__ == '__main__':
main()
উপরের কমান্ড কমান্ড টার্মিনাল থেকে এক্সিকিউট করলে myapp.pyz তৈরি হবে। এখন কমান্ড প্রম্পট থেকে এক্সিকিউট করা যাবে।
C:\python37>python myapp.pyz Hello World
কমান্ড লাইন অপশন:
-o
ডিফল্ট আউটপুট ফাইলের এক্সটেনশন .pyz এবং নাম ইনপুট সোর্সের মতো। -o অপশনে নির্দিষ্ট করলে পরিবর্তন করা যায়।
-p, --python=
ইন্টারপ্রিটার স্পষ্টভাবে রান করার কমান্ড হিসেবে 지정 করতে ব্যবহৃত হয়।
-c, --compress
ডিফ্লেট মেথড দিয়ে ফাইল কমপ্রেস করে, আউটপুট ফাইলের সাইজ কমানো হয়।
zipapp মডিউল প্রোগ্রাম্যাটিকভাবে ব্যবহার করা যায়। এটি নিচের ফাংশনগুলো ডিফাইন করে:
zipapp.create_archive(source): সোর্স ফোল্ডার থেকে অ্যাপ্লিকেশন আর্কাইভ তৈরি করে। অতিরিক্তভাবে interpreter, target, compressed আর্গুমেন্ট ব্যবহার করা যায়।zipapp.get_interpreter(archive): আর্কাইভের শুরুতে#!লাইনে নির্দিষ্ট ইন্টারপ্রিটার রিটার্ন করে।
>>> import zipapp
>>> zipapp.create_archive('myapp.pyz', 'myapp')