Saturday, November 29, 2014

Python: Build .py file to .exe

নরমালি যেসব পিসিতে পাইথন সেট-আপ করা আছে, সেখানে সরাসরি .py ফাইল রান করানো যায়। কিন্তু যেসব পিসিতে পাইথন সেট-আপ করা নাই সেখানে .py ফাইলকে নরমাল টেক্স ফাইলের মত করে দেখায়।
এখন কোন প্রোগ্রামার পাইথনে একটা প্রোগ্রাম লিখে  সবাইকে দেয়ার সময় এইটা বলবেনা যে এই আমার .py ফাইল এইবার এইটা রান করার জন্য আপনার পিসিতে পাইথন সেট-আপ দিয়ে নেন। :P :P
তাহলে এইটার সহজ সমাধান হল প্রোগ্রামকে কম্পাইল করে এমন একটা ফাইল সিস্টেমে নেয়া যেটা পাইথন না থাকলেও চলবে। সেই রকম একটা সিস্টেম হল .exe ফাইল। মানে executable ফাইল বানানো।


এই কাজটা cx_Freeze দিয়ে খুব সহজে করা যায়।
প্রথম cx_Freeze এই লিংক থেকে ডাউনলোড করতে হবে। ডাউনলোড করার সময় খেয়াল রাখতে হবে পাইথনের ভার্সনের সাথে মিল রেখে একই ভার্সন ডাউনলোড করতে হবে।
যেমনঃ পাইথন ভার্সন যদি python-3.3.0 হয় তাহলে cx_Freeze-4.3.3.win32-py3.3 ডাউনলোড করতে হবে।
তারপর ইন্সটল করতে হবে C:\Python33 ডিরেক্টরিতে। নরমালি সঠিক ভার্সন ডাউনলোড করলে নিজে থেকেই ইন্সটলেশন ডিরেক্টরি খুজে নেয়।

এখন ধরা যাক আমার একটা পাইথন প্রোগ্রাম আছে যেটার নাম myprog.py এবং এইটা আছে py to exe নামে ফোল্ডারে।


এইবার এই ফোল্ডারে আরেকটি ফাইল বানাতে হবে। যার নাম দিলাম setup.py

এখন setup.py ফাইলে এই কোডটুকু থাকবে,

from cx_Freeze import setup, Executable
setup( 
 name = "" ,
 version = "",
 description = "",
 executables = [Executable("")], 
 )

এখন name="" এখানে আমি যে নামে .exe ফাইল বানাতে চাই তা দিতে হবে।
version=আমার প্রোগ্রামের ভার্সন কত।
description ="" কোন ডেসক্রিপশন দিতে চাইলে অথবা খালি রাখলে কোন সমস্যা নাই।
executables="" এখানে আমি যে ফাইলটাকে .exe বানাতে চাই তার নাম ফাইল এক্সটেনশন সহ দিতে হবে।

এইবার shift চেপে মাউসের রাইট বাটন ক্লিক করে command prompt ওপেন করতে হবে।
এইবার command prompt এ python setup.py build এই কমান্ডটি লিখে enter দিতে হবে।
তারপর ফোল্ডারে একটি Build নামে একটি ফোল্ডার তৈরী হবে।

Build ফোল্ডারের ভিতর exe.win-amd64-3.4 ফোল্ডার থাকবে যার ভিতর কম্পাইল করা .exe ফাইল থাকবে।
এখন কাউকে .exe ফাইল দেয়ার সময় Build ফোল্ডারের ভিতরের পুরো ফোল্ডারটা সহ দিতে হবে। কারন তার ভিতরে ওই .exe ফাইল রান করার জন্য আরও অনেক dependency ফাইল থাকে।

বিদ্রঃ  .exe ফাইলে যদি python 32 bit ভার্সন দিয়ে build করা হয়, তাহলে সেই ফাইল শুধুমাত্র 32 bit পিসিতেই চলবে। একই কথা 64 bit এর জন্যও প্রযোজ্য।




No comments:

Post a Comment

Popular posts