खोज…


वाक्य - विन्यास

  • pyinstaller [विकल्प] स्क्रिप्ट [स्क्रिप्ट ...] | specfile

टिप्पणियों

PyInstaller एक मॉड्यूल है जो सभी निर्भरता के साथ एक पैकेज में अजगर एप्लिकेशन को बंडल करने के लिए उपयोग किया जाता है। उपयोगकर्ता तब अजगर इंटरप्रेटर या किसी भी मॉड्यूल के बिना पैकेज ऐप चला सकता है। यह कई प्रमुख पैकेजों जैसे कि सुन्न, Django, OpenCv और अन्य को सही ढंग से बंडल करता है।

याद रखने के लिए कुछ महत्वपूर्ण बिंदु:

  • Pyinstaller Python 2.7 और Python 3.3+ का समर्थन करता है
  • Pyinstaller को विंडोज, लिनक्स और मैक ओएस एक्स के खिलाफ परीक्षण किया गया है।
  • यह क्रॉस कंपाइलर नहीं है । (लिनक्स में विंडोज ऐप पैक नहीं किया जा सकता है। आप विंडोज के लिए ऐप बनाने के लिए विंडोज में PyInstaller चला सकते हैं)

होमपेज आधिकारिक डॉक्स

स्थापना और सेटअप

Pyinstaller एक सामान्य अजगर पैकेज है। यह पाइप का उपयोग करके स्थापित किया जा सकता है:

pip install pyinstaller

विंडोज में स्थापना
विंडोज के लिए, pywin32 या pypiwin32 एक शर्त है। बाद में स्वचालित रूप से स्थापित किया जाता है जब पाइप का उपयोग करके pyinstaller स्थापित किया जाता है।

मैक ओएस एक्स में स्थापना
PyInstaller वर्तमान मैक ओएस एक्स के साथ प्रदान किए गए डिफ़ॉल्ट पायथन 2.7 के साथ काम करता है। यदि बाद में पायथन के संस्करणों का उपयोग किया जाना है या यदि कोई प्रमुख पैकेज जैसे कि PyQT, Numpy, Matplotlib और जैसे उपयोग किए जाने हैं, तो उन्हें उपयोग करके इंस्टॉल करने की अनुशंसा की जाती है या तो MacPorts या Homebrew

संग्रह से स्थापित करना
यदि पाइप उपलब्ध नहीं है, तो PyPI से संपीड़ित संग्रह डाउनलोड करें।
विकास संस्करण का परीक्षण करने के लिए, PyInstaller डाउनलोड पृष्ठ की विकसित शाखा से संपीड़ित संग्रह डाउनलोड करें

संग्रह का विस्तार करें और setup.py स्क्रिप्ट ढूंढें। Pythstaller को स्थापित या अपग्रेड करने के लिए व्यवस्थापक विशेषाधिकार के साथ python setup.py install करें।

स्थापना का सत्यापन करना
आदेश pyinstaller एक सफल स्थापना के बाद सभी प्लेटफार्मों के लिए सिस्टम पथ पर मौजूद होना चाहिए।
कमांड लाइन में pyinstaller --version टाइप करके इसे सत्यापित करें। यह pyinstaller के वर्तमान संस्करण को प्रिंट करेगा।

Pyinstaller का उपयोग करना

सबसे सरल उपयोग के मामले में, अपनी फ़ाइल जिस निर्देशिका में है उस पर नेविगेट करें और टाइप करें:

pyinstaller myfile.py

Pyinstaller फ़ाइल का विश्लेषण करता है और बनाता है:

  • Myfile.spec फ़ाइल उसी निर्देशिका में myfile.py रूप में है
  • उसी निर्देशिका में एक निर्माण फ़ोल्डर myfile.py
  • उसी निर्देशिका में एक जिले फ़ोल्डर myfile.py
  • बिल्ड फ़ोल्डर में फ़ाइलें लॉग करें

बंडल किए गए ऐप को डिस्टर्ब फोल्डर में पाया जा सकता है

विकल्प
कई विकल्प हैं जो pyinstaller के साथ उपयोग किए जा सकते हैं। विकल्पों की पूरी सूची यहां पाई जा सकती है

एक बार बंडल करने के बाद आपका ऐप 'dist \ myfile \ myfile.exe' खोलकर चलाया जा सकता है।

वन फोल्डर के लिए बंडलिंग

जब PyInstaller का उपयोग किसी भी विकल्प के बिना myscript.py को बंडल करने के लिए किया जाता है, तो डिफ़ॉल्ट आउटपुट एक एकल फ़ोल्डर ( myscript नाम) होता है जिसमें सभी आवश्यक निर्भरता के साथ एक निष्पादन योग्य नाम myscript ( myscript.exe ) होता है।
एप्लिकेशन को फ़ोल्डर को ज़िप फ़ाइल में संपीड़ित करके वितरित किया जा सकता है।

एक फ़ोल्डर मोड को विकल्प -D या --onedir का उपयोग करके आसानी से सेट किया जा सकता है

pyinstaller myscript.py -D

लाभ:

एकल फ़ोल्डर में बंडलिंग का एक प्रमुख लाभ यह है कि समस्याओं को डीबग करना आसान है। यदि कोई मॉड्यूल आयात करने में विफल रहता है, तो इसे फ़ोल्डर का निरीक्षण करके सत्यापित किया जा सकता है।
अपडेट के दौरान एक और फायदा महसूस किया जाता है। कोड में कुछ परिवर्तन देखते हैं, लेकिन उनका उपयोग निर्भरता ठीक उसी रखते हैं, वितरकों बस निष्पादन योग्य फ़ाइल (जो आमतौर पर संपूर्ण फ़ोल्डर से छोटा है) भेज सकते हैं।

नुकसान

इस पद्धति का एकमात्र नुकसान यह है कि उपयोगकर्ताओं को बड़ी संख्या में फ़ाइलों के बीच निष्पादन योग्य की खोज करनी होती है।
साथ ही उपयोगकर्ता अन्य फ़ाइलों को हटा / संशोधित कर सकते हैं जो एप को सही ढंग से काम करने में सक्षम नहीं कर सकते हैं।

एकल फ़ाइल के लिए बंडलिंग

pyinstaller myscript.py -F

एकल फ़ाइल जनरेट करने के लिए विकल्प हैं -F या --onefile । यह प्रोग्राम को एक सिंगल myscript.exe फ़ाइल में बंडल करता है।

एकल फ़ाइल निष्पादन योग्य एक फ़ोल्डर बंडल की तुलना में धीमी हैं। वे डीबग करना भी कठिन हैं।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow