วิธีคอมไพล์สคริปต์ python เป็นไบนารีปฏิบัติการ


118

ฉันต้องการแปลงสคริปต์ Python เป็นไฟล์ปฏิบัติการของ Windows

ฉันติดตั้ง Python 2.6 ไปที่python26.

C:\pythonscriptผมได้สร้างหนึ่งสคริปต์และเก็บมันไว้ใน ภายในโฟลเดอร์นี้มีไฟล์สองไฟล์

Setup.pyและoldlogs.py(ไฟล์นี้ต้องการการครอบคลุม)

setup.py รหัสคือ

from distutils.core import setup
import py2exe

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

ฉันจะแปลง oldlogs.py เป็นไฟล์ exe ได้อย่างไร?



เพื่อความสมบูรณ์cx_Freezeเป็นอีกหนึ่งเครื่องมือที่คุณสามารถใช้สำหรับสิ่งนี้ (พร้อมกับ PyInstaller และ py2exe ซึ่งคำตอบอื่น ๆ ได้กล่าวไปแล้ว)
Thomas K

คำตอบ:


63

หรือใช้PyInstallerเป็นทางเลือกให้กับpy2exe นี่คือสิ่งที่ดีจุดเริ่มต้น PyInstaller ยังให้คุณสร้างไฟล์ปฏิบัติการสำหรับ linux และ mac ...

นี่คือวิธีที่เราสามารถใช้ PyInstaller เพื่อแก้ปัญหาได้อย่างง่ายดาย:

pyinstaller oldlogs.py

จากเอกสารของเครื่องมือ:

PyInstaller วิเคราะห์ myscript.py และ:

  • เขียน myscript.spec ในโฟลเดอร์เดียวกับสคริปต์
  • สร้างโฟลเดอร์บิลด์ในโฟลเดอร์เดียวกับสคริปต์หากไม่มีอยู่
  • เขียนไฟล์บันทึกและไฟล์การทำงานบางไฟล์ในโฟลเดอร์ build
  • สร้างโฟลเดอร์ dist ในโฟลเดอร์เดียวกับสคริปต์หากไม่มีอยู่
  • เขียนโฟลเดอร์ปฏิบัติการ myscript ในโฟลเดอร์ dist

ในโฟลเดอร์ dist คุณจะพบแอปที่แถมมาที่คุณแจกจ่ายให้กับผู้ใช้ของคุณ


9
cx_Freezeดีกว่ารองรับแม้ python 3.3
Ashwini Chaudhary

นี่ยังใช้ได้กับไวน์อย่างน้อยก็ถึงเวอร์ชัน 3.4 ของ python ซึ่งรองรับ Windows XP ดีจริงๆ! ฉันสร้าง windows ที่เรียกใช้งานได้ด้วยwine , python 3.4และpip-Win (เพียงทำตามคำแนะนำการติดตั้งบนเว็บไซต์ pyinstaller) บนเครื่อง Fedora Linux ของฉัน
erik

3
@AshwiniChaudhary ทั้งคู่ดูเหมือนจะข้ามแพลตฟอร์ม .. อย่างไรก็ตามถ้าฉันต้องตัดสินอย่างรวดเร็วว่าจะใช้อันไหนโดยอิงจากGitHubดาวPyInstallerมีดาว ~ 4000 ดวงcx_Freezeมี 200 ดวง ดังนั้นPyInstallerน่าจะเป็นที่นิยมมากขึ้นและอาจจะมีกรณีขอบมากขึ้นปกคลุม ทำไมคุณคิดว่าcx_Freezeดีกว่าPyInstaller?
alpha_989

โปรดทราบว่าเมื่อเปรียบเทียบกับ PyInstaller แล้ว "cx_Freeze ไม่สนับสนุนการสร้างไฟล์ exe เพียงไฟล์เดียวโดยที่ไลบรารีทั้งหมดสำหรับแอปพลิเคชันของคุณจะฝังอยู่ในไฟล์ปฏิบัติการไฟล์เดียว" cx-freeze.readthedocs.io/en/latest/…
Taylor Edmiston

12

ฉันแนะนำPyInstallerสคริปต์ python แบบธรรมดาสามารถแปลงเป็น exe ด้วยคำสั่งต่อไปนี้:

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

ซึ่งสร้างไฟล์ yourprogram.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 )
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.