Python : การคอมไพล์ script ให้เป็น EXE
1. PyInstaller
การติดตั้ง
py -m pip install PyInstaller
การใช้งาน py -m PyInstaller script.py --noconsole --onefile
หากมี lib ที่ไม่ได้ถูกดึงเข้ามาโดย default ต้องสร้าง hook file ขึ้นมาเอง
โดยตั้งชื่อเป็น hook-xxxxxxxx.xxxxxxx.py
xxx คือ ชื่อ lib ที่ import เข้ามา
แล้วในคำสั่งใช้เพิ่ม --additional-hooks-dir=.
--------------------------------------------------------------------------------------------------
2.
ใน python จะใช้ module ที่ชื่อว่า py2exe ซึ่งไม่ได้มีอยู่ใน standard python
แต่เราก็ติดตั้งเองได้ไม่ยากครับ เริ่มด้วยการ ต่ออินเทอร์เน็ต แล้วไปที่ CMD
พิมพ์ py -m pip install py2exe ดังภาพ
ต่อมา ลองคอมไพล์ ด้วยคำสั่ง
py -m py2exe.build_exe <ไฟล์script.py> ดังภาพ
หากเจอ 3 missing Mudules หมายถึง เรายังไม่ได้ติดตั้ง pywin32 กับ readline
งั้นเริ่มด้วยการติดตั้ง readline model ก่อน
ด้วยคำสั่งดังนี้
py -m pip install pyreadline
จากนั้น ไปโหลด pywin32 สำหรับ python 3.4 ได้ที่
https://sourceforge.net/projects/pywin32/files/pywin32/Build%20221/pywin32-221.win32-py3.4.exe/download
หรือ python อื่นๆ เลือกได้จากหน้านี้
https://sourceforge.net/projects/pywin32/files/pywin32/Build%20221/
โหลดมาแล้วก็ติดตั้ง เป็นอันจบ
หรือหากจะใช้ pyinstaller แทน py2exe หากไม่ติดตั้ง 2 อันก่อนหน้า ก็จะพบ error แบบนี้เช่นกัน
ก็ให้ติดตั้ง pyreadline กับ pywin32 ก่อนเหมือนเดิม เมื่อติดตั้งแล้วก็จะสามารถติดตั้ง pyinstaller ได้แบบนี้
การ build ด้วย pyinstaller หากใช้คำสั่ง
py -m pyinstaller <ไฟล์ script.py> จะเกิด Error ขั้น ว่าไม่มี module อยู่
แก้ด้วยการเปลี่ยน pyinstaller เป็น PyInstaller ครับ
หรือหากไม่ต้องการให้มี console โผลขึ้นมาในตอน execute โปรแกรม ก็เพิ่ม --noconsole เป็น option ดังนี้
py -m PyInstaller --noconsole <ไฟล์ script.py>
blog: jeasydev.blogspot.com
fbPage: https://www.facebook.com/jeasydev
youtube : https://www.youtube.com/banwitt
การติดตั้ง
py -m pip install PyInstaller
การใช้งาน py -m PyInstaller script.py --noconsole --onefile
หากมี lib ที่ไม่ได้ถูกดึงเข้ามาโดย default ต้องสร้าง hook file ขึ้นมาเอง
โดยตั้งชื่อเป็น hook-xxxxxxxx.xxxxxxx.py
xxx คือ ชื่อ lib ที่ import เข้ามา
แล้วในคำสั่งใช้เพิ่ม --additional-hooks-dir=.
--------------------------------------------------------------------------------------------------
-
2.
ใน python จะใช้ module ที่ชื่อว่า py2exe ซึ่งไม่ได้มีอยู่ใน standard python
แต่เราก็ติดตั้งเองได้ไม่ยากครับ เริ่มด้วยการ ต่ออินเทอร์เน็ต แล้วไปที่ CMD
พิมพ์ py -m pip install py2exe ดังภาพ
ต่อมา ลองคอมไพล์ ด้วยคำสั่ง
py -m py2exe.build_exe <ไฟล์script.py> ดังภาพ
หากเจอ 3 missing Mudules หมายถึง เรายังไม่ได้ติดตั้ง pywin32 กับ readline
งั้นเริ่มด้วยการติดตั้ง readline model ก่อน
ด้วยคำสั่งดังนี้
py -m pip install pyreadline
จากนั้น ไปโหลด pywin32 สำหรับ python 3.4 ได้ที่
https://sourceforge.net/projects/pywin32/files/pywin32/Build%20221/pywin32-221.win32-py3.4.exe/download
หรือ python อื่นๆ เลือกได้จากหน้านี้
https://sourceforge.net/projects/pywin32/files/pywin32/Build%20221/
โหลดมาแล้วก็ติดตั้ง เป็นอันจบ
หรือหากจะใช้ pyinstaller แทน py2exe หากไม่ติดตั้ง 2 อันก่อนหน้า ก็จะพบ error แบบนี้เช่นกัน
![]() |
จะเห็นว่ามันติดตั้งไม่ได้ |
ก็ให้ติดตั้ง pyreadline กับ pywin32 ก่อนเหมือนเดิม เมื่อติดตั้งแล้วก็จะสามารถติดตั้ง pyinstaller ได้แบบนี้
การ build ด้วย pyinstaller หากใช้คำสั่ง
py -m pyinstaller <ไฟล์ script.py> จะเกิด Error ขั้น ว่าไม่มี module อยู่
แก้ด้วยการเปลี่ยน pyinstaller เป็น PyInstaller ครับ
หรือหากไม่ต้องการให้มี console โผลขึ้นมาในตอน execute โปรแกรม ก็เพิ่ม --noconsole เป็น option ดังนี้
py -m PyInstaller --noconsole <ไฟล์ script.py>
blog: jeasydev.blogspot.com
fbPage: https://www.facebook.com/jeasydev
youtube : https://www.youtube.com/banwitt
ครูชลิตา จูมสีมา(@jEasyDev)
ผู้เขียน
ผู้เขียน
ความคิดเห็น
แสดงความคิดเห็น