Python betiğini ikili yürütülebilir dosyaya derleme


118

Bir Python komut dosyasını bir Windows çalıştırılabilir dosyasına dönüştürmem gerekiyor.

Python 2.6 yüklü python26.

Bir komut dosyası oluşturdum ve içinde tuttum C:\pythonscript. Bu klasörün içinde iki dosya var

Setup.pyve oldlogs.py(bu dosyanın dönüştürülmesi gerekiyor)

setup.py kod

from distutils.core import setup
import py2exe

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

Oldlogs.py'yi bir exe dosyasına nasıl dönüştürebilirim?



Tamamlayıcı olmak üzere cx_Freeze (diğer cevaplar zaten belirtmiştik PyInstaller ve py2exe birlikte) Bunun için kullanabileceği başka bir araçtır.
Thomas K

Yanıtlar:


63

Veya kullanmak PyInstaller alternatif olarak py2exe . İşte iyi bir başlangıç ​​noktası . PyInstaller ayrıca linux ve mac için yürütülebilir dosyalar oluşturmanıza izin verir ...

İşte eldeki sorunu çözmek için PyInstaller'ı nasıl kolayca kullanabileceğiniz:

pyinstaller oldlogs.py

Aracın belgelerinden:

PyInstaller myscript.py'yi analiz eder ve:

  • Myscript.spec dosyasını komut dosyasıyla aynı klasöre yazar.
  • Mevcut değilse, komut dosyasıyla aynı klasörde bir klasör yapısı oluşturur.
  • Yapı klasöründeki bazı günlük dosyalarını ve çalışma dosyalarını yazar.
  • Mevcut değilse, komut dosyasıyla aynı klasörde dist bir klasör oluşturur.
  • Dist klasöründeki myscript yürütülebilir klasörünü yazar.

Dist klasöründe, kullanıcılarınıza dağıttığınız paketlenmiş uygulamayı bulacaksınız.


9
cx_Freeze daha iyidir, hatta python 3.3'ü destekler.
Ashwini Chaudhary

Hey, bu şarapla bile çalışır , en azından Windows XP'yi destekleyen python 3.4 sürümüne kadar. Gerçekten harika! Fedora Linux makinemde wine , python 3.4 ve pip-Win ile çalıştırılabilir bir pencere oluşturdum (sadece pyinstaller web sitesindeki kurulum talimatlarını izleyin).
erik

3
@AshwiniChaudhary, İkisi de çapraz platform gibi görünüyor .. Ancak, hangisinin sadece GitHubyıldızlara göre kullanılacağına hızlı bir şekilde karar vermek zorunda kalırsam PyInstaller~ 4000 yıldız, cx_Freeze200 yıldıza sahip. Bu yüzden PyInstallerdaha popüler görünüyor ve muhtemelen daha fazla uç vakaya sahip. neden cx_Freezedaha iyi olduğunu düşünüyorsun PyInstaller?
alpha_989

PyInstaller ile karşılaştırıldığında, "cx_Freeze, uygulamanız için tüm kitaplıkların tek bir yürütülebilir dosyaya gömülü olduğu tek bir dosya exe oluşturmayı desteklemez." cx-freeze.readthedocs.io/en/latest/…
Taylor Edmiston

12

Ben tavsiye PyInstaller basit Python komut aşağıdaki komutlarla bir exe dönüştürülebilir:

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

bu, son exe'yi oluşturmak için bir konfigürasyon olan yourprogram.spec dosyasını oluşturur. Sonraki komut, exe'yi yapılandırma dosyasından oluşturur:

utils/Build.py oldlogs.spec

Daha fazlası burada bulunabilir


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 )
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.