पाइथन स्क्रिप्ट को बाइनरी एक्ज़ीक्यूटेबल के लिए कैसे संकलित करें


118

मुझे पायथन स्क्रिप्ट को विंडोज एक्जीक्यूटेबल में बदलने की आवश्यकता है।

मैंने पाइथन 2.6 को स्थापित किया है python26

मैंने एक स्क्रिप्ट बनाई है और उसमें रखी है C:\pythonscript। इस फोल्डर के अंदर दो फाइलें होती हैं

Setup.pyऔर oldlogs.py(इस फाइल को कोविर्सन की जरूरत है)

setup.py कोड है

from distutils.core import setup
import py2exe

setup(console=['oldlogs.py'])

मैं पुराने जमाने की खसखस ​​को exe फाइल में कैसे बदल सकता हूं?



पूर्णता के लिए, cx_Freeze एक अन्य उपकरण है जिसे आप इसके लिए उपयोग कर सकते हैं (PyInstaller और py2.exe के साथ, जिसका अन्य उत्तर पहले ही उल्लेख कर चुके हैं)।
थॉमस के

जवाबों:


63

या py2exe के विकल्प के रूप में PyInstaller का उपयोग करें । यहाँ एक अच्छा प्रारंभिक बिंदु है । PyInstaller आपको linux और mac के लिए निष्पादक बनाने की सुविधा देता है ...

यहाँ बताया गया है कि कोई भी आसानी से PyInstaller का उपयोग हाथ में समस्या को हल करने के लिए कैसे कर सकता है:

pyinstaller oldlogs.py

उपकरण के दस्तावेज से:

PyInstaller myscript.py और: का विश्लेषण करता है

  • स्क्रिप्ट के समान फ़ोल्डर में myscript.spec लिखता है।
  • स्क्रिप्ट के रूप में एक ही फ़ोल्डर में एक फ़ोल्डर बनाता है अगर यह मौजूद नहीं है।
  • बिल्ड फ़ोल्डर में कुछ लॉग फाइल और वर्किंग फाइल लिखता है।
  • स्क्रिप्ट के समान फ़ोल्डर में एक फ़ोल्डर डिस्टर्ब बनाता है यदि वह मौजूद नहीं है।
  • डिस्टर्ब फोल्डर में myscript निष्पादन योग्य फ़ोल्डर लिखता है।

डिस्ट फ़ोल्डर में आप अपने उपयोगकर्ताओं को वितरित बंडल ऐप ढूंढते हैं।


9
cx_Freeze बेहतर है, यह भी 3.3 3.3 का समर्थन करता है।
अश्विनी चौधरी

अरे, यह शराब के साथ भी काम करता है , कम से कम संस्करण 3.4 के अजगर के लिए, जो विंडोज एक्सपी का समर्थन करता है। वास्तव में महान! मैंने अपने फेडोरा लिनक्स मशीन पर वाइन , पाइथन 3.4 और पिप-विन के साथ निष्पादन योग्य विंडोज़ (बस स्थापना निर्देश का पालन करें)।
इरिक

3
@ अश्विनीचौधरी, दोनों ही पार मंच लगते हैं .. हालाँकि, अगर मुझे जल्दी से न्याय करना था कि GitHubसितारों के आधार पर किसका उपयोग करना है , तो PyInstaller~ 4000 सितारों में, cx_Freeze200 सितारे हैं। ऐसा PyInstallerलगता है कि यह अधिक लोकप्रिय है और संभवतः अधिक धार वाले मामलों को कवर किया गया है। आपको क्यों लगता cx_Freezeहै कि बेहतर है PyInstaller?
अल्फा_989

ध्यान दें कि PyInstaller की तुलना में, "cx_Freeze एक एकल फ़ाइल exe के निर्माण का समर्थन नहीं करता है, जहां आपके एप्लिकेशन के सभी लाइब्रेरी एक निष्पादन योग्य फ़ाइल में एम्बेडेड हैं।" cx-freeze.readthedocs.io/en/latest/…
टेलर

12

मैं PyInstaller को सलाह देता हूं , एक साधारण अजगर लिपि को निम्नलिखित आदेशों के साथ एक exe में बदला जा सकता है:

utils/Makespec.py [--onefile] oldlogs.py

जो आपके aprogram.spec फ़ाइल बनाता है जो अंतिम exe के निर्माण के लिए एक विन्यास है। अगला कमांड कॉन्फ़िगरेशन फ़ाइल से exe बनाता है:

utils/Build.py oldlogs.spec

अधिक यहाँ पाया जा सकता है


1
# -*- mode: python -*-

block_cipher = None

a = Analysis(['SCRIPT.py'],
             pathex=[
                 'folder path',
                 'C:\\Windows\\WinSxS\\x86_microsoft-windows-m..namespace-downlevel_31bf3856ad364e35_10.0.17134.1_none_50c6cb8431e7428f',
                 'C:\\Windows\\WinSxS\\x86_microsoft-windows-m..namespace-downlevel_31bf3856ad364e35_10.0.17134.1_none_c4f50889467f081d'
             ],
             binaries=[(''C:\\Users\\chromedriver.exe'')],
             datas=[],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          name='NAME OF YOUR EXE',
          debug=False,
          strip=False,
          upx=True,
          runtime_tmpdir=None,
          console=True )
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.