แปลง Python script (.py) ให้เป็น Executable (.exe) ด้วย Pyinstaller

Sasiwut Chaiyadecha
2 min readSep 8, 2020

--

หลาย ๆ ครั้งที่เขียน Python script เสร็จแล้ว แต่ยังต้องสั่งให้ตัวโปรแกรมทำงานผ่านทาง Terminal หรือต้องเปิด IDE เพื่อให้รันโปรแกรม แน่นอนว่ามันขึ้นอยู่กับความซับซ้อนของ Script ที่เขียนไว้ข้างหลัง อธิบายเพิ่มเติมคือ ถ้างานที่เป็นพวก Data science การทำโมเดลประเภทต่าง ๆ ไม่ว่าจะเป็น AI/ML การสั่งงานโปรแกรมย่อมง่ายกว่า ถ้าทำด้วย IDE เช่น Jupyter, Colab หรือ Spyder

py to exe pyinstaller

แต่ว่าถ้างานอออกไปในทาง Programming ที่ไม่ได้เกี่ยวกับข้องกับ Data import หรือการทำ Processing ข้อมูลมาก การรันโปรแกรมด้วย Terminal อาจไม่ใช่สิ่งที่สะดวกมากเท่าไหร่ ดังนั้นวันนี้มา Compile ตัว Python script ด้วย Compiler ที่มีชื่อว่า Pyinstaller

Install

สำหรับเครื่องที่ยังไม่ได้ติดตั้ง Pyinstaller ให้ทำการติดตั้งก่อน วิธีการที่ง่ายที่สุดคือการติดตั้งผ่าน pip install pyinstaller และสามารถอ่านการใช้งานเพิ่มเติม ได้จาก Official website ได้ที่ Link ด้านล่าง

Compile

ขั้นตอนการ Compile ด้วย Pyinstaller สามารถทำได้ไม่ยาก ซึ่งขอใช้ตัวอย่าง Script จาก Blog ตอนก่อนหน้านี้ที่เขียนโปรแกรมง่าย ๆ เอาไว้กลับด้าน String เพื่อสร้างประโยค Reverse แบบในหนังเรื่อง TENET

เพื่อลดการสับสนที่อาจเกิดขึ้น เพราะหลังจากที่ Compile แล้วจะมีโฟลเดอร์ต่าง ๆ เกิดขึ้นอีกมากมาย ดังนั้นควรสร้างเป็นโฟลเดอร์ใหม่ แยกไฟล์ Script ออกมา และเ cd เข้าไปที่โฟลเดอร์นั้นเพื่อเริ่มการ Compile

pyinstaller tenet.py --onefile --windowed

เมื่อเข้าไปที่โฟลเดอร์เป้าหมายแล้ว ให้พิมพ์ Command ตามด้านบน โดยขออธิบายคำสั่งไปทีละขั้นตอนดังนี้

  • pyinstaller : เรียกใช้งาน Library
  • tenet.py : ไฟล์ Python script ที่ถูกเขียนขึ้นมาและต้องการ Compile ให้อยู่ในรูปแบบ Executable (.exe)
  • — onefile : ใช้เพื่อสั่งให้ pyinstaller Compile ให้ออกมาอยู่ในรูปแบบของ .exe เพียง 1 ไฟล์ เพราะหากไม่ใส่คำสั่งนี้ ค่า Default ของ Compiler จะ Compile แยกออกมาเป็นหลาย ๆ ไฟล์ซึ่งอาจไม่สะดวกในการใช้งาน
  • — windowed : ใช้เพื่อปิดหน้าต่าง Terminal ในขณะที่รันโปรแกรม ถ้าไม่ใส่คำสั่งนี้ เมื่อรันโปรแกรมที่ Compile เสร็จแล้ว หน้าต่าง Terminal จะถูกรันเอาไว้ตลอดเวลาระหว่างใช้งานโปรแกรม

เมื่อ Compile เสร็จแล้ว ที่โพลเดอร์จะมีการสร้างโฟลเดอร์ใหม่ขึ้นมาชื่อว่า dist ซึ่งตัวโปรแกรมถูก Save อยู่ในนั้น โดยมีชื่อเหมือน Script ที่เขียนขึ้นมา แต่แตกต่างกันที่นามสกุลซึ่งจากเดิมเป็น .py แต่ตอนนี้เป็น .exe แล้ว

py to exe pyinstaller

เมื่อกดรันโปรแกรมก็ยังสามารถใช้งานได้ตามปกติ

py to exe pyinstaller tenet

สำหรับใครที่ต้องการทำโปรแกรมส่วนตัว ติดตั้งเอาไว้ใช้งานตามสถานที่ต่าง ๆ ก็สามารถนำลง Flash drive แล้วรันจากตรงนั้นได้เลย เพิ่มความสะดวกสบายในการทำงานไปอีกระดับ

--

--

Sasiwut Chaiyadecha
Sasiwut Chaiyadecha

Responses (1)