23 สิงหาคม 2557

Published 8/23/2557 by with 0 comment

Compile python 3 ให้เป็น exe

สวัสดีทุกท่านครับ บางท่านที่เขียนด้วย Python แล้วต้องการนำโปรแกรมที่เขียนไปเปิดกับเครื่องอื่น แต่เครื่องอื่นนั้นไม่ได้ติดตั้ง Python ไว้ ทำให้ไม่สามารถรันโปรแกรมได้ บทความนี้เราจะมา Compile python 3 ให้เป็น exe ด้วย cx_Freeze กันครับ
   EXE คือ ไฟล์ Binary ในระบบปฎิบัติการ Windows ที่ใช้งานกันส่วนใหญ่ ซึ่งได้แปลงโปรแกรมมาอยู่ในรูปภาษาเครื่องแล้วครับ
  ใน Python 3 ผมได้ตรวจสอบแล้วพบว่า PyInstaller และอื่น ๆ ยังไม่รองรับ Python 3 อย่างสมบูรณ์ครับ ผมขอแนะนำโมดูล cx_Freeze ครับ เป็นโมดูลที่รองรับการ Compile python 3 ให้เป็น exe ครับ
โมดูล cx_Freeze สามารถโหลดและติดตั้งได้ที่ https://pypi.python.org/pypi/cx_Freeze ครับ เลือกให้ตรงกับเวชั่นนะครับ เช่น ผมใช้ Python 3.4 32 Bit ผมก็เลือก cx_Freeze-4.3.3.win32-py3.4.exe ครับ
  เมื่อติดตั้งเสร็จแล้วเรามาลอง Compile python 3 ให้เป็น exe กันเลยครับ ผมได้เขียนโปรแกรมบวกลบแบบง่าย ๆ โดยมีโค้ดดังนี้ครับ
#!/usr/bin/python

#-*-coding: utf-8 -*-

print (" + or -")

print ("1.+  2. -")

x = int(input("input: "))

if x == 1:

    a = int(input(" input 1: "))

    b = int(input("input 2: "))

    print ("=" , a + b)

elif x == 2:

    c = int(input("input 1: "))

    d = int(input("input 2: "))

    print ("=" , c - d)

elif x < 1 or x > 2:

    print ("No!")

input("enter to exit")
เสร็จแล้วผมบันทึกเป็น 1.py ต่อมาเราต้องสร้างไฟล์ setup.py ด้วยครับ เป็นไฟล์สำคัญในการ Compile บอกรายละอียดให้โมดูล cx_Freeze ว่าต้องมีการรวมโมดูลใดเข้ามาบ้าง ไฟล์ที่ต้องการ Compile เป็นต้นครับ
โค้ดตัวอย่างไฟล์  setup.py
import sys

from cx_Freeze import setup, Executable



executables = [

    Executable("1.py",

               icon="logo.ico",

               appendScriptToExe=True,

               appendScriptToLibrary=False,

               )

]



buildOptions = dict(create_shared_zip=False)



setup(name="Test",

      version="0.1",

      description="Hello, world",

      options=dict(build_exe=buildOptions),

      executables=executables,

      )

แล้วผมก็เปิด cmd ใช้ cd ไปยังโฟลเดอร์ที่เก็บแล้วผมก็สั่ง
python setup.py build 
เสร็จแล้วจะได้โฟลเดอร์ build ขึ้นมา เข้าไปจะพบกับโฟลเดอร์ exe.winXX-Y.Y
XX คือ Bit ของ Python Y.Y คือรุ่นของ Python ครับ ของผมเป็น exe.win32-3.4 พอคลิกเข้าไปจะพบกับ ครับ เมื่อผมคลิกที่ 1.exe จะพบว่าโปรแกรมได้ถูก Compile ให้เป็น exe แล้วครับ
โหลดโค้ดตัวอย่างโปรแกรมที่ผ่านการ  Compile ได้ที่ https://db.tt/kmIfSNPn
หรือถ้าต้องการสร้างไฟล์ติดตั้ง msi ด้วยให้ใช้คำสั่ง
python setup.py bdist_msi
ครับ จะได้โฟลเดอร์ dist ขึ้นมาข้างในจะมีไฟล์ Test-0.1-win32.msi ครับ

ติดตามบทความต่อไปครับ :)
ขอบคุณครับ

0 ความคิดเห็น:

แสดงความคิดเห็น

แสดงความคิดเห็นได้ครับ :)