আমার পাইথন সোর্স কোড থেকে কীভাবে একটি .exe ফাইল তৈরি করব

সর্বশেষ আপডেট: 08/05/2026
লেখক: ইসহাক
  • পাইথন কোড থেকে একটি নির্ভরযোগ্য .exe ফাইল তৈরি করার জন্য প্রজেক্টের কাঠামো এবং রিসোর্সসমূহ যথাযথভাবে সংগঠিত করা অত্যন্ত গুরুত্বপূর্ণ।
  • পাইইনস্টলার আপনাকে স্ক্রিপ্ট, ডিপেন্ডেন্সি এবং আইকনগুলোকে একটিমাত্র এক্সিকিউটেবলে প্যাকেজ করার সুযোগ দেয় এবং .bat ফাইলের মাধ্যমে এই প্রক্রিয়াটিকে স্বয়ংক্রিয় করে তোলে।
  • প্রতিটি টার্গেট অপারেটিং সিস্টেমে কম্পাইল করা এবং এক্সিকিউটেবল ফাইলটিতে টেস্ট, লগ ও টেলিমেট্রি যুক্ত করা প্রয়োজন।
  • কোডকে এক্সিকিউটেবলে রূপান্তর করলে প্রকৃত ফিডব্যাক লুপ উন্মুক্ত হয় এবং ক্লাউড পরিষেবা, অ্যানালিটিক্স ও কৃত্রিম বুদ্ধিমত্তাকে একীভূত করা সহজ হয়ে ওঠে।

সোর্স কোড থেকে এক্সিকিউটেবল ফাইল তৈরি করুন

যখন আপনি কয়েক মাস ধরে কোনো প্রকল্পে কঠোর পরিশ্রম করার পর অবশেষে তা আপনার ইচ্ছামতো কাজ করতে শুরু করে, তখন পরবর্তী যৌক্তিক পদক্ষেপটি হলো... ওই কোডটিকে এমন কিছুতে পরিণত করুন যা যে কেউ চালাতে পারে। পাইথন ইনস্টল না করে, ডিপেন্ডেন্সি নিয়ে মাথা না ঘামিয়ে, এবং কনসোল স্পর্শ না করেই। অন্য কথায়, একটি ভালো ফাইল উইন্ডোজের জন্য .exe প্রস্তুত যা আপনি আপনার ব্যবহারকারী, সহকর্মী বা ক্লায়েন্টদের সাথে শেয়ার করতে পারেন।

'শুধুমাত্র কোড' থেকে 'ইনস্টলযোগ্য অ্যাপ্লিকেশন'-এ এই পরিবর্তনটি কোনো সাধারণ প্রযুক্তিগত প্রক্রিয়া নয়। এর সাথে জড়িত পরিষ্কার মেশিনে আপনার সফ্টওয়্যার যাচাই করুন, নির্ভরতা পরিচালনা করুন এবং রিসোর্স প্যাকেজ করুন। (আইকন, স্টাইল, ছবি) নিয়ে ভাবুন, কীভাবে এটি আপডেট করা হবে, কীভাবে আপনি ত্রুটিগুলো নথিভুক্ত করবেন এবং ব্যবহারের মেট্রিকগুলো দিয়ে কী করবেন। এবং সর্বোপরি, তথ্য গ্রহণের পথ খোলা রাখুন। প্রকৃত ব্যবহারকারীদের কাছ থেকে প্রাপ্ত বাস্তব প্রতিক্রিয়া তারা এটি ডাউনলোড করে, ইনস্টল করে এবং তাদের দৈনন্দিন জীবনে ব্যবহার করতে শুরু করে।

আপনার সোর্স কোড থেকে কেন একটি .exe ফাইল তৈরি করা লাভজনক

আমার কোড থেকে কীভাবে একটি EXE ফাইল তৈরি করব

স্ক্রিপ্ট থেকে এক্সিকিউটেবলে রূপান্তর একটি সন্ধিক্ষণ চিহ্নিত করে: আপনি শুধু একজন ডেভেলপার হিসেবে চিন্তা করা বন্ধ করে একটি প্রোডাক্ট হিসেবেও চিন্তা করা শুরু করেন।একটি .exe ফাইল উইন্ডোজের যে কোনো ব্যবহারকারীকে পাইথন ইনস্টল করা, PATH কনফিগার করা এবং লাইব্রেরির সংস্করণ নিয়ে চিন্তা করা ছাড়াই ডাবল-ক্লিক করে আপনার টুলটি খোলার সুযোগ দেয়।

প্রযুক্তিগত দৃষ্টিকোণ থেকে, একটি .exe ফাইল প্যাকেজ করার প্রক্রিয়ায় জড়িত থাকে পুনরুৎপাদনযোগ্য বাইনারি তৈরি করুন, সম্ভব হলে সেগুলোতে স্বাক্ষর করুন। এবং বিভিন্ন পরিবেশে তাদের পরীক্ষা করুনএই প্রক্রিয়াটি সাধারণত কন্টিনিউয়াস ইন্টিগ্রেশন পাইপলাইনের মাধ্যমে স্বয়ংক্রিয়ভাবে সম্পন্ন হয়, যা আর্টিফ্যাক্ট (চূড়ান্ত এক্সিকিউটেবল ফাইল) তৈরি করে, সেগুলোকে যাচাই করে এবং ব্যবহারকারীর জন্য ন্যূনতম প্রতিবন্ধকতা রেখে বিতরণের জন্য প্রস্তুত করে।

এর পাশাপাশি, কার্যপ্রণালী অংশটি উপস্থিত হয়: আপনার প্রয়োজন স্থায়ী কনফিগারেশন, লগ এবং ঐচ্ছিক টেলিমেট্রি পরিচালনা করুনমাঠে আপনার প্রোগ্রামটি কীভাবে কাজ করে তা বোঝার জন্য। এর মধ্যে কনফিগারেশন ফাইলগুলো সংরক্ষণের পাথ থেকে শুরু করে আপনি কোনো ক্লাউড সার্ভিসে মেট্রিক্স পাঠাবেন কিনা, বা একটি স্বয়ংক্রিয় আপডেট সিস্টেম চালু করবেন কিনা, সবকিছুই অন্তর্ভুক্ত।

যখন সফটওয়্যার মানুষের কাছে পৌঁছায়, ব্যবহারকারীরা আবিষ্কার করে উন্নয়নের সময় আপনি যে পরিস্থিতিগুলো বিবেচনা করেননিএই অপ্রত্যাশিত ব্যবহারের ক্ষেত্র এবং ত্রুটিগুলো উন্নতির অগ্রাধিকার নির্ধারণের জন্য অমূল্য। যদি আপনার একটি সুসংগঠিত বাগ লগ এবং স্পষ্ট সাপোর্ট চ্যানেল থাকে, তবে আপনি সেই তথ্যকে সুনির্দিষ্ট কাজে রূপান্তরিত করতে এবং স্বল্প ডেলিভারি চক্রের মধ্যে সেগুলো বাস্তবায়ন করতে পারবেন।

অনেক পেশাদার প্রকল্পে, ডেস্কটপ এক্সিকিউটেবলের সাথে আরও যুক্ত করা হয় পরিচালিত ক্লাউড পরিষেবা (AWS, Azure, ইত্যাদি) মেট্রিক্স, ব্যবসায়িক ডেটা সংরক্ষণ করতে, বা এমনকি নিয়ন্ত্রিত ডেপ্লয়মেন্ট পরিচালনা করতে। এখানেই সাইবারসিকিউরিটি, নিয়ন্ত্রক সম্মতি এবং ডেভঅপস-এর সর্বোত্তম অনুশীলনগুলো গুরুত্বপূর্ণ হয়ে ওঠে, যেগুলোর সমাধান শুরু থেকেই করা উচিত।

কম্পাইল করার আগে একটি পাইথন প্রজেক্টের প্রস্তাবিত কাঠামো

যথেচ্ছভাবে PyInstaller কমান্ড চালানো শুরু করার আগে, এটি গুরুত্বপূর্ণ। আপনার প্রকল্পের কাঠামোটি সঠিকভাবে সাজান।একটি পরিচ্ছন্ন বিন্যাস এক্সিকিউটেবলের মধ্যে আইকন, স্টাইল এবং অন্যান্য স্ট্যাটিক ফাইলের মতো রিসোর্স অন্তর্ভুক্ত করার সময় সমস্যা প্রতিরোধ করে। একটি পাইথন ডেস্কটপ অ্যাপ্লিকেশনের কাঠামোর একটি অত্যন্ত বাস্তবসম্মত উদাহরণ হতে পারে:

অ্যাপ/

├── সম্পদ
│ ├── logo.ico
│ ├── logo.png
│ ├── style.txt
├── app.py
├── লাইসেন্স
├── README.md
├── requirements.txt
├── setup.py
└── tests.py

এই স্কিমে, ফাইলটি app.py প্রধান লজিককে একত্রিত করে অ্যাপ্লিকেশনটির। আইকনটি এই বিন্যাসে এক্সিকিউটেবল ফাইলের জন্য logo.ico ব্যবহার করা হবে। তৈরি করা হয়েছে, যখন logo.png ইন্টারফেসের অংশ হতে পারে। (উদাহরণস্বরূপ, উইন্ডোতে একটি ছবি হিসাবে)। ফাইলটি style.txt ফাইলে CSS স্টাইলগুলো সংরক্ষিত থাকে। অথবা বাহ্যিক রূপের নিয়মাবলী যা আপনি আপনার GUI-তে প্রয়োগ করবেন।

ফাইলগুলো ডকুমেন্টেশনের জন্য LICENSE এবং README.md গুরুত্বপূর্ণ। আপনার প্রকল্প এবং এর ব্যবহারের লাইসেন্স। ফাইলটি requirements.txt নির্ভরতাগুলো সংজ্ঞায়িত করে। অ্যাপ্লিকেশনটি চালানোর জন্য পাইথন প্রয়োজন (যেমন, PySide2, PyQt, ইত্যাদি)। স্ক্রিপ্টটি প্যাকেজ করার জন্য setup.py ব্যবহার করা যেতে পারে। প্রকল্পটি একটি ইনস্টলযোগ্য মডিউল হিসাবে এবং tests.py টেস্টগুলোকে গ্রুপ করে। স্বয়ংক্রিয় প্রক্রিয়া যা নিশ্চিত করে যে পরিবর্তন করার সময় আপনি কোনো কিছু নষ্ট করবেন না।

প্যাকেজিং পরীক্ষার জন্য একটি উদাহরণ অ্যাপ্লিকেশন হতে পারে একটি সাধারণ ইন্টারফেস যা দিয়ে তৈরি করা হয়েছে পাইসাইড২ (বা পাইকিউটি)যা একটি বাটনসহ একটি উইন্ডো প্রদর্শন করে। বাটনটি চাপলে, এর লেখাটি পর্যায়ক্রমে “Start” এবং “Stop”-এর মধ্যে পরিবর্তিত হয় এবং স্ট্যাটাস বারে একটি বার্তা আপডেট হয়। এর মাধ্যমে আপনি যাচাই করতে পারেন যে এক্সিকিউটেবলটি ইভেন্ট পরিচালনা করে, ইন্টারফেস আপডেট করে এবং প্রাথমিক লগ প্রদর্শন করে। অতিরিক্ত জটিলতা ছাড়াই।

  কিভাবে পেইন্টে কাস্টম আইকন ডিজাইন করবেন এবং .ico তে এক্সপোর্ট করবেন

এই নমুনা অ্যাপটিতে, একটি ক্লাস যা ভিত্তি করে QMainWindow যেটি উইজেটগুলো তৈরি করে (উদাহরণস্বরূপ, একটি QPushButton সম্পর্কে), লেআউটটি একটি দিয়ে সাজায় QHBoxLayout এবং উইন্ডোর বৈশিষ্ট্য যেমন শিরোনাম, জ্যামিতি এবং আইকন কনফিগার করে। এছাড়াও, উইন্ডোতে বার্তা লেখার জন্য একটি ছোট পদ্ধতি প্রয়োগ করা হয়েছে। স্ট্যাটাস বার এবং আরেকটি পদ্ধতি যা বাটন ক্লিকের প্রতিক্রিয়ায় এর অবস্থা ও প্রদর্শিত লেখা পরিবর্তন করে।

.exe ফাইল তৈরির সময় রিসোর্স এবং আইকন ব্যবস্থাপনা

আপনার স্ক্রিপ্টকে .exe তে রূপান্তর করার সময় অন্যতম গুরুত্বপূর্ণ একটি বিষয় হলো যে রিসোর্স ফাইলগুলো এক্সিকিউটেবলের ভেতরে থাকে। এবং ব্যবহারকারী যখন তাদের কম্পিউটারে এটি চালাবেন, তখনও যেন তা অ্যাক্সেসযোগ্য থাকে। এর মধ্যে ছবি, আইকন, স্টাইল ফাইল এবং আপনার .py ফাইলের বাইরের অন্য যেকোনো রিসোর্স অন্তর্ভুক্ত।

উদাহরণস্বরূপ, আপনি যদি চান, একটি আইকন .exe ফাইলের সাথে যথাযথভাবে সংযুক্ত করা হয়েছে। একবার তৈরি হয়ে গেলে, আপনাকে পাথগুলো সঠিকভাবে পরিচালনা করতে হবে। শুধু রিলেটিভ পাথ ব্যবহার করাই যথেষ্ট নয়, কারণ PyInstaller চূড়ান্ত এক্সিকিউটেবলে ফাইলগুলো যেভাবে প্যাকেজ ও প্রকাশ করা হয়, তা পরিবর্তন করে দেয়। এই কারণে, সাধারণত ব্যবহার করা হয় একটি সহায়ক ফাংশন যা রিসোর্সটির পরম পথ গণনা করে। ডেভেলপমেন্ট মোডে কাজ করার সময় এবং প্যাকেজ করা অ্যাপটি চালানোর সময়, উভয় ক্ষেত্রেই।

এইসব ক্ষেত্রে একটি অত্যন্ত কার্যকর ফাংশনের ধারণাগত পদ্ধতিটি নিম্নরূপ: এটি একটি বিশেষ বেস পাথ (অ্যাট্রিবিউট) অ্যাক্সেস করার চেষ্টা করে। PyInstaller থেকে _MEIPASSপ্রোগ্রামটি যখন একটি .exe ফাইল হিসেবে চলে, তখন এই পাথটি ব্যবহৃত হয়। যদি এই পাথটি বিদ্যমান থাকে, তবে এটি আপনার রিসোর্সগুলোর অ্যাবসোলিউট পাথ তৈরি করার ভিত্তি হিসেবে ব্যবহৃত হয়। যদি এটি বিদ্যমান না থাকে (যখন আপনি সাধারণ পাইথন স্ক্রিপ্ট চালাচ্ছেন), তাহলে... বর্তমান ডিরেক্টরির পরম পথ, গণনা করা হয়েছে os.path.abspath(".").

এইভাবে, ফাংশনটি একটি গ্রহণ করে আপেক্ষিক পথ, উদাহরণস্বরূপ 'resources\\style.txt'এবং ডেভেলপমেন্ট ও এক্সিকিউটেবল ফাইল উভয়ের ক্ষেত্রেই সংশ্লিষ্ট অ্যাবসোলিউট পাথটি রিটার্ন করে। সেখান থেকে, আপনি ভেরিয়েবল তৈরি করতে পারেন, যেমন— স্টাইল_পাথ = রিসোর্স_পাথ(«রিসোর্সেস\\স্টাইল.txt») এবং সরাসরি ব্যবহার করুন, উদাহরণস্বরূপ অ্যাপ্লিকেশনটির স্টাইলশীট লোড করতে।

একই পদ্ধতি প্রয়োগ করে, আপনি অ্যাবসোলিউট পাথটিও সমাধান করতে পারেন। প্রধান উইন্ডো আইকনযার পরে আপনি এগিয়ে যান QIcon এবং নির্ধারিত করা হয়েছে QMainWindow with setWindowIconএর ফলে, ব্যবহারকারী .exe ফাইলটি যেখানেই ইনস্টল বা কপি করুক না কেন, প্রোগ্রামটি খোলার সময় আইকনটি সঠিকভাবে প্রদর্শিত হয়।

পাইথনে ইন্টারফেস এবং মেইন ফ্লো-এর উদাহরণ

অনেক টিউটোরিয়ালে একটি বাস্তব উদাহরণ দেখানো হয় যেখানে একটি PySide2 সহ বেসিক উইন্ডো (যদিও এটি PyQt দিয়ে সহজেই করা যেত)। মূল ধারণাটি হলো, অ্যাপটিতে একটিমাত্র বাটন এবং একটি স্ট্যাটাস বার থাকবে, যাতে কম্পাইল করার পর সবকিছু ঠিকঠাক কাজ করছে কিনা তা সহজেই পরীক্ষা করা যায়।

মূল স্ক্রিপ্টের মধ্যে, এটি সাধারণত আমদানি করা হয় sys এবং osসেইসাথে প্রয়োজনীয় শ্রেণীগুলি PySide2.QtWidgets, PySide2.QtCore এবং PySide2.QtGuiকখনও কখনও, আপনি যদি PyQt থেকে আসেন, তাহলে একটি ছোট সিগন্যাল অনুবাদ করা হয়, উদাহরণস্বরূপ অ্যাসাইন করার মাধ্যমে। pyqtSignal = Signal আপনার কোডে নামের সামঞ্জস্য বজায় রাখতে।

কেন্দ্রীয় শ্রেণীকে এইরকম কিছু বলা যেতে পারে AcApp এবং উত্তরাধিকার সূত্রে প্রাপ্ত QMainWindowএর কনস্ট্রাক্টরটি টাইটেল ও একটি মেইন ফ্রেম গ্রহণ করে এবং একটি মেথডের মধ্যে ইন্টারফেসটি কনফিগার করে। initUI এরপর উইজেটগুলো যেখানে রাখা হবে সেই লেআউটটি নির্ধারণ করা হয়। সেখানে বাটনটি তৈরি করে "Start"-এর মতো একটি প্রাথমিক টেক্সট দেওয়া হয় এবং এর সিগন্যালটি সংযুক্ত করা হয়। clicked একটি পদ্ধতি যা বাটনের অবস্থা পরিবর্তনের জন্য দায়ী।

উইন্ডো প্রারম্ভিককরণের সময়, প্যারামিটার যেমন সেটসেন্ট্রালউইজেট মূল ফ্রেমটি স্থাপন করার জন্য, এর জ্যামিতি (স্ক্রিনে অবস্থান এবং আকার) কনফিগার করা হয়, এবং অ্যাপ্লিকেশন আইকন এবং স্ট্যাটাস বারটি তৈরি করা হয় statusBar()একটি টাইপ মেথডও সংজ্ঞায়িত করা হয়। debugMsg যা একটি টেক্সট গ্রহণ করে এবং স্ট্যাটাস বারে তা প্রদর্শন করে, ফলে আপনি "প্রক্রিয়া শুরু হয়েছে" বা "প্রক্রিয়া বন্ধ হয়েছে"-এর মতো বার্তা দেখতে পারেন।

প্রোগ্রামটির স্ট্যান্ডার্ড এন্ট্রি পয়েন্ট একটি ফাংশনের উপর আলোকপাত করে। প্রধান ()যেখানে দৃষ্টান্তটি QApplicationশেষ উইন্ডোটি বন্ধ হলে অ্যাপ্লিকেশনটি বন্ধ হবে কিনা তা নির্ধারণ করা হয় এবং স্টাইলটি ফাইল থেকে লোড করা হয়। স্টাইল_পাথ এবং প্রধান ক্লাসটি এমন একটি শিরোনাম দিয়ে ইনস্ট্যানশিয়েট করা হয় যাতে নাম এবং সংস্করণ অন্তর্ভুক্ত থাকে (উদাহরণস্বরূপ, একত্রিত করে __শিরোনাম__ এবং __সংস্করণ__অবশেষে, আহ্বান জানানো হয় sys.exit(app.exec_()) Qt ইভেন্ট লুপ শুরু করতে।

  কীভাবে সহজে একটি পিডিএফকে একাধিক ফাইলে ভাগ করা যায়

এই ডিজাইন প্যাটার্নটি খুব আরামদায়ক কারণ ইন্টারফেস থেকে সাধারণ কনফিগারেশনকে আলাদা করুন প্রোগ্রামের এন্ট্রি পয়েন্ট থেকে, এবং এটি আপনাকে একটি সাধারণ ডেমো থেকে আরও জটিল অ্যাপ্লিকেশনে পরিণত করার সুযোগ দেয়, যার ফলে .exe ফাইলে কম্পাইল করার জন্য প্রজেক্টটিকে গোড়া থেকে পুনর্গঠন করার প্রয়োজন হয় না।

উইন্ডোজে পাইইনস্টলার ইনস্টল এবং প্রস্তুত করা

উইন্ডোজে আপনার পাইথন স্ক্রিপ্টকে .exe ফাইলে রূপান্তর করার জন্য সবচেয়ে জনপ্রিয় টুলগুলোর মধ্যে একটি হলো পাইআইনস্টলারএটি আপনার কোডকে পাইথন ইন্টারপ্রেটার এবং প্রয়োজনীয় ডিপেন্ডেন্সিগুলোর সাথে বান্ডল করে এমন একটি এক্সিকিউটেবল ফাইল তৈরি করে, যা ব্যবহারকারী আগে থেকে কোনো কিছু ইনস্টল করা ছাড়াই খুলতে পারেন।

এটি ইনস্টল করার আগে, পরামর্শ দেওয়া হচ্ছে আপনার পাইথন ইনস্টলেশনের স্ক্রিপ্টস ফোল্ডারটি নিশ্চিত করুন এটি PATH এনভায়রনমেন্ট ভেরিয়েবলে অন্তর্ভুক্ত থাকে। একটি সাধারণ উইন্ডোজ পরিবেশে, এটি দেখতে অনেকটা এইরকম হতে পারে। C:\Users\ADMIN\AppData\Local\Programs\Python\Python38\Scriptsযদি সেই পাথটি PATH-এ না থাকে, তাহলে কোনো টার্মিনাল থেকেই পাইথন কমান্ড শনাক্ত নাও হতে পারে।

PyInstaller ইনস্টল করার একটি স্থিতিশীল উপায় হল ব্যবহার করা পাইথনের মাধ্যমে পিপ মডিউল, এরকম একটি কমান্ডের মাধ্যমে python -m pip install pyinstaller==5.6.2কিছু ক্ষেত্রে, পরবর্তী সংস্করণগুলিতে (উদাহরণস্বরূপ, নির্দিষ্ট সময়ে 5.7.0) থাকতে পারে অনুমতি সংক্রান্ত সমস্যা বা নির্দিষ্ট বাগ কিছু কিছু পরিবেশে, এমন একটি নির্দিষ্ট সংস্করণ সেট করার পরামর্শ দেওয়া হয় যা সঠিকভাবে কাজ করে বলে জানা যায়।

ব্যবহারের python -m pip সরাসরি আহ্বান করার পরিবর্তে pip সাহায্য বিভিন্ন পাইথন ইনস্টলেশনের মধ্যে দ্বন্দ্ব এড়িয়ে চলুন একই মেশিনে, কারণ এটি নিশ্চিত করে যে আপনার প্রোজেক্টের জন্য ব্যবহৃত নির্দিষ্ট ইন্টারপ্রেটারের সাথে যুক্ত pip-ই ব্যবহৃত হচ্ছে।

একবার PyInstaller ইনস্টল হয়ে গেলে, এটি একটি ভালো ধারণা। সংস্করণ পরীক্ষা করুন চলমান python -m PyInstaller --version টার্মিনালে। এটি নিশ্চিত করে যে ইনস্টলেশনটি সঠিক এবং আপনার স্ক্রিপ্টকে .exe-তে কম্পাইল করার জন্য ব্যবহৃত কমান্ড লাইন থেকে কমান্ডটি অ্যাক্সেসযোগ্য।

একটি .bat ফাইল ব্যবহার করে কম্পাইলেশন স্বয়ংক্রিয় করুন

যখন আপনি নিয়মিতভাবে .exe ফাইল তৈরি করা শুরু করেন, তখন মেমরি থেকে সবসময় একই দীর্ঘ PyInstaller কমান্ড চালানো কিছুটা ঝামেলার হয়ে দাঁড়ায়। সবচেয়ে সুবিধাজনক উপায় হলো একটি ব্যাচ ফাইল (.bat) তৈরি করুন যা সম্পূর্ণ কম্পাইলেশনকে স্বয়ংক্রিয় করে।উদাহরণস্বরূপ, আপনি এটিকে বলতে পারেন install_app.bat এবং এটিকে প্রকল্পের মূলে রেখে দিন।

এই .bat ফাইলে, আপনি কোন ধরনের বিল্ড চান, কোন অতিরিক্ত লাইব্রেরিগুলো অন্তর্ভুক্ত করবেন, এবং আপনার এক্সিকিউটেবলের সাথে কোন রিসোর্স ফোল্ডারগুলো প্যাকেজ করা হবে তা নির্ধারণ করেন। PySide2 ব্যবহার করে, কোনো দৃশ্যমান কনসোল ছাড়া একটি একক-ফাইল অ্যাপ্লিকেশনের জন্য একটি সাধারণ কমান্ড দেখতে অনেকটা এইরকম হতে পারে:

python -m PyInstaller --noconfirm --log-level=WARN ^
--onefile --noconsole ^
--hidden-import=PySide2 ^
--hidden-import=shiboken2 ^
--add-data ./resources;resources ^
--icon=./resources/logo_araignee.ico ^
app.py

বিকল্প –একফাইল এটি নির্দেশ করে যে আপনি একটিমাত্র এক্সিকিউটেবল চান, যেখানে –নোকনসোল ব্যাকগ্রাউন্ড কনসোল লুকায়, যা গ্রাফিক্যাল ইন্টারফেসযুক্ত অ্যাপ্লিকেশনগুলির জন্য আদর্শ। বিকল্পসমূহ –লুকানো-আমদানি এগুলো পাইইনস্টলারকে এমন মডিউলগুলো শনাক্ত করতে সাহায্য করে, যেগুলো ডাইনামিক ইম্পোর্টের কারণে অন্যথায় সঠিকভাবে অন্তর্ভুক্ত নাও হতে পারে।

বিরূদ্ধে –add-data ./resources;resources রিসোর্স ফোল্ডারটি এক্সিকিউটেবলের ভিতরে যুক্ত করা হয়, যাতে এই ধরনের ফাইলগুলি... logo.ico, logo.png এবং style.txt এগুলো অ্যাপ্লিকেশনটির সাথেই প্যাকেজ করা থাকে। ফাংশনটি ব্যবহার করার সময় আপনি যে সোর্স পাথ এবং অভ্যন্তরীণ গন্তব্য ফোল্ডারটি দেখতে পাবেন, সেমিকোলন সিনট্যাক্সটি সেগুলোকে আলাদা করে। resource_path তোমার স্ক্রিপ্টে।

বিকল্প –icon=./resources/logo_araignee.ico এটি তৈরি হওয়া .exe ফাইলটিতে আইকনটি নির্ধারণ করে দেয়, যাতে Windows Explorer-এর ফাইল এবং মূল উইন্ডো উভয়ই নির্বাচিত ছবিটি প্রদর্শন করে। কমান্ডটি বন্ধ করলে app.py আপনি PyInstaller-কে বলে দেন যে কোন ইনপুট স্ক্রিপ্টটি এক্সিকিউটেবল ফাইলের ভিত্তি হিসেবে ব্যবহৃত হবে।

.bat ফাইলটি চালানোর পর, PyInstaller ফোল্ডারটি তৈরি করে। নির্মাণ করা (মধ্যবর্তী সংকলন ফাইল সহ), Dist (যেখানে চূড়ান্ত .exe ফাইলটি অবস্থিত) এবং একটি ফাইল অ্যাপ.স্পেকপরেরটিতে রয়েছে বিস্তারিত বিল্ড কনফিগারেশন এবং এটি আপনাকে কমান্ড লাইনে সবসময় সমস্ত অপশন টাইপ না করেই এটিকে পরিবর্তন ও পুনঃব্যবহার করার সুযোগ দেয়।

পাইইনস্টলারের সীমাবদ্ধতা এবং বিভিন্ন অপারেটিং সিস্টেমে সংকলন

যদিও PyInstaller খুব শক্তিশালী, এর একটি প্রধান সীমাবদ্ধতা রয়েছে: এটি একটি মেশিন থেকে অন্যান্য অপারেটিং সিস্টেমের জন্য এক্সিকিউটেবল তৈরি করার অনুমতি দেয় না।অন্য কথায়, আপনি যদি উইন্ডোজ ব্যবহার করেন, তাহলে একই PyInstaller ইনস্টলেশন ব্যবহার করে উইন্ডোজের জন্য একটি .exe ফাইল তৈরি করতে পারলেও লিনাক্স বা ম্যাকওএস-এর জন্য কোনো বাইনারি তৈরি করতে পারবেন না।

এর মানে হল যে আপনি যদি প্রস্তাব দিতে চান উইন্ডোজ, লিনাক্স এবং ম্যাকওএস-এর জন্য নেটিভ সংস্করণআপনাকে প্রতিটি তার নিজ নিজ সিস্টেমে কম্পাইল করতে হবে (অথবা ভার্চুয়াল মেশিন, কন্টেইনার বা সিআই পরিষেবা ব্যবহার করতে হবে যা সেই পরিবেশগুলোকে অনুকরণ করে)। উইন্ডোজের জন্য, আপনি একটি উইন্ডোজ মেশিনে পাইইনস্টলার চালাবেন; লিনাক্সের জন্য, একটি লিনাক্স পরিবেশে; এবং ম্যাকওএসের জন্য, একটি ম্যাকে বা আইনত সমর্থিত কোনো পরিকাঠামোতে।

  আপনি যদি আপনার পাসওয়ার্ড ভুলে যান তবে কীভাবে উইন্ডোজ অ্যাকাউন্টে অ্যাক্সেস পুনরুদ্ধার করবেন

কাছে যাওয়ার একটি সম্ভাবনা আছে ডকার ব্যবহার করে ক্রস-কম্পাইলেশনপ্রতিটি সিস্টেমের জন্য নির্দিষ্ট পরিবেশসহ ইমেজ প্রস্তুত করা হয়। তবে, এই পদ্ধতিগুলো সাধারণত প্রাথমিকভাবে লিনাক্সের জন্যই তৈরি করা হয়েছে, কারণ অন্যান্য সিস্টেমের কন্টেইনার থেকে নেটিভ উইন্ডোজ বা ম্যাকওএস এক্সিকিউটেবল তৈরি করার ক্ষেত্রে বেশ কিছু সীমাবদ্ধতা এবং অতিরিক্ত প্রয়োজনীয়তা রয়েছে।

তাই অনেক দল বেছে নেয় নিরবচ্ছিন্ন ইন্টিগ্রেশন পাইপলাইন কনফিগার করুন এই পাইপলাইনগুলো প্রতিটি অপারেটিং সিস্টেমের জন্য একটি করে আলাদা মেশিনে কম্পাইলেশনের কাজগুলো চালায়। প্রতিটি পাইপলাইন কোড ডাউনলোড করে, উপযুক্ত কনফিগারেশন সহ পাইইনস্টলার (PyInstaller) চালায়, আর্টিফ্যাক্ট তৈরি করে এবং এটিকে একটি রিপোজিটরি বা ডাউনলোড সার্ভারে প্রকাশ করে।

সকল ক্ষেত্রে, সংকলনটির সাথে পরিপূরক যোগ করা অপরিহার্য। পরিষ্কার মেশিনে পরীক্ষাযেখানে সিস্টেমে পাইথন বা এর নির্ভরশীল প্রোগ্রামগুলো ইনস্টল করা নেই। এইভাবে আপনি যাচাই করতে পারবেন যে আপনার .exe ফাইলটি সত্যিই স্বতন্ত্র এবং এটি এমন কোনো ডেভেলপমেন্ট এনভায়রনমেন্ট প্যাকেজের উপর নির্ভর করে না যা সাধারণ ব্যবহারকারীর কাছে থাকবে না।

এক্সিকিউটেবল থেকে প্রোডাক্ট: টেস্টিং, মেট্রিক্স এবং ডেপ্লয়মেন্ট

একবার আপনার .exe ফাইলটি চালু হয়ে গেলে, আসল মজার অংশটি শুরু হয়: এটি ব্যবহারকারীদের সামনে তুলে ধরুন এবং দেখুন কী হয়।প্রাথমিকভাবে একটি ইনস্টলযোগ্য সংস্করণ প্রকাশ করলে প্রকৃত ফিডব্যাক পাওয়ার সুযোগ তৈরি হয় এবং এর মাধ্যমে আপনি জানতে পারেন যে, আপনার সফটওয়্যারটিকে প্রোডাকশনে সত্যিকারের কার্যকর করে তোলার জন্য কী কাজ করছে, কী ভেঙে যাচ্ছে এবং কীসের অভাব রয়েছে।

পেশাগত পরিবেশে, এই পদক্ষেপের সাথে সাধারণত থাকে বিভিন্ন এবং স্বয়ংক্রিয় পরিবেশে পরীক্ষাশুধু আপনার ল্যাপটপে এটি চালালেই চলবে না: আপনাকে এটি উইন্ডোজের বিভিন্ন সংস্করণে, সীমিত ব্যবহারকারী অনুমতি সহ, সক্রিয় অ্যান্টিভাইরাস সফ্টওয়্যারের সাথে এবং ক্লায়েন্টের পরিবেশের সাথে ঘনিষ্ঠভাবে সাদৃশ্যপূর্ণ পরিস্থিতিতে পরীক্ষা করতে হবে।

ভালোভাবে পরিচালনা করুন লগ এবং ঐচ্ছিক টেলিমেট্রি এটি আপনাকে এমন ত্রুটি শনাক্ত করতে সাহায্য করে যা ব্যবহারকারী হয়তো বর্ণনাও করতে পারবেন না। একটি ভালো লগিং সিস্টেম (স্থানীয় বা দূরবর্তী) ত্রুটিগুলো পুনরায় ঘটানো, প্যাটার্ন বোঝা এবং কোন বাগগুলোর অগ্রাধিকার সর্বোচ্চ তা নির্ধারণ করা সহজ করে তোলে। এর সাথে মিলিত হয়ে... স্পষ্ট সমর্থন চ্যানেল (ফর্ম, ইমেল, টিকেট সিস্টেম) প্রতিটি ঘটনাকে টেকনিক্যাল টিমের জন্য একটি সুনির্দিষ্ট ও পরিচালনাযোগ্য কাজে পরিণত করতে সাহায্য করে।

যদি আপনার অ্যাপ্লিকেশনটি একটি বৃহত্তর সমাধানের অংশ হয়, তবে এটি সাধারণত এর সাথে সংযুক্ত করা হয় কনফিগারেশন, মেট্রিক্স বা ব্যবসায়িক ডেটা সংরক্ষণের জন্য ক্লাউড পরিষেবাএর মধ্যে রয়েছে AWS বা Azure-এর মতো প্ল্যাটফর্মের সাথে ইন্টিগ্রেশন, অ্যানালিটিক্যাল ড্যাশবোর্ডের ডিজাইন এবং স্বয়ংক্রিয় ডেপ্লয়মেন্ট। এই সবকিছুই করা হয়... এর সার্বক্ষণিক তত্ত্বাবধানে। সাইবার নিরাপত্তা এবং সম্মতিস্থির ও স্থানান্তরিত ডেটা এনক্রিপ্ট করা থেকে শুরু করে বাহ্যিক নির্ভরতা নিয়ন্ত্রণ পর্যন্ত।

বিশুদ্ধ প্রযুক্তিগত দিকগুলোর বাইরেও, এর একটি গুরুত্বপূর্ণ অতিরিক্ত মূল্য সংযোজনকারী উপাদান রয়েছে: এমন মেট্রিকস প্রয়োগ করুন যা ড্যাশবোর্ড তৈরি করতে সাহায্য করে। কোন উন্নতিগুলোকে অগ্রাধিকার দেওয়া উচিত সে সম্পর্কে ডেটা-ভিত্তিক সিদ্ধান্ত নিতে বিজনেস ইন্টেলিজেন্স টুলগুলিতে (যেমন, পাওয়ার বিআই) এটি ব্যবহৃত হয়। ইন্টিগ্রেশনের সম্ভাবনার মাধ্যমে এই বিষয়টি আরও উন্নত হয়। কৃত্রিম বুদ্ধিমত্তার উপাদান অ্যাপ্লিকেশনটির মধ্যেই রোগ নির্ণয় স্বয়ংক্রিয় করতে, সুপারিশ তৈরি করতে, অথবা ব্যবহারকারীকে সহায়তা করার জন্য এজেন্ট চালু করতে।

যখন এই সম্পূর্ণ ইকোসিস্টেমটি ভালোভাবে ডিজাইন করা হয়, তখন একটি সাধারণ স্ক্রিপ্ট থেকে একটি পরিমার্জিত এক্সিকিউটেবলে রূপান্তর সবকিছু বদলে দেয়। আপনার ব্যবহারকারীদের সাথে এবং আপনার নিজের সফ্টওয়্যারের সাথে আপনার সম্পর্কআপনি আপনার প্রজেক্টকে শুধু 'কম্পাইল হওয়া কোড' হিসেবে দেখা বন্ধ করে দেন এবং এটিকে একটি জীবন্ত পণ্য হিসেবে দেখতে শুরু করেন, যা ব্যবসা বা সম্প্রদায়ের প্রকৃত চাহিদা অনুযায়ী ইনস্টল, আপডেট ও মনিটর করা হয় এবং বিকশিত হয়।

ভালো প্যাকেজিং, ডেলিভারি পাইপলাইন, লগিং সিস্টেম, মেট্রিক্স এবং প্রয়োজনে ক্লাউড পরিষেবা ও উন্নত অ্যানালিটিক্সের সহায়তাসহ আপনার সোর্স কোডকে একটি শক্তিশালী .exe ফাইলে রূপান্তর করা হয়ে ওঠে এমন একটি মাইলফলক যা ঝুঁকি কমায়, ব্যবহারকারীর অভিজ্ঞতা উন্নত করে এবং বিনিয়োগের উপর প্রাপ্তি ত্বরান্বিত করে।ব্যক্তিগত প্রকল্প এবং বিশেষায়িত পেশাদারী সমাধান, উভয় ক্ষেত্রেই।

ধাপে ধাপে একটি .exe ফাইল কীভাবে তৈরি করবেন
সম্পর্কিত নিবন্ধ:
উইন্ডোজে ধাপে ধাপে একটি .exe ফাইল কীভাবে তৈরি করবেন