11 มกราคม 2560

Published 1/11/2560 by with 0 comment

Windows : ส่งออกโปรแกรมที่เขียนด้วย Python ไปให้เครื่องอื่นง่าย ๆ

สวัสดีผู้อ่านทุกท่านครับ บทความนี้ผมจะพาผู้อ่านส่งออกโปรแกรมที่เขียนด้วย Python ไปให้เครื่องอื่นบน Windows กันครับ

[caption id="attachment_2554" align="aligncenter" width="498"] ระบบติดตั้งโปรแกรมบน Windows จาก NSIS[/caption]

เราสามารถนำระบบติดตั้ง NSIS มาใช้ในการส่งออกโปรแกรมที่เขียนด้วย Python ไปให้คอมพิวเตอร์เครื่องอื่นที่ไม่ได้ติดตั้ง Python ได้ ด้วยโมดูล pynsist

โมดูล pynsist เป็นโมดูลช่วยสร้าง Windows installers สำหรับโปรแกรมที่เขียนด้วย Python ใช้ MIT License และ รองรับทั้ง Python 2 , Python 3

ก่อนอื่น ให้ทำการติดตั้งติดตั้ง NSIS และตั้งค่า path ชี้ไปยัง NSIS  ให้เรียบร้อย แล้วทำการติดตั้งโมดูล pynsist ด้วยคำสั่ง
pip install pynsist

ตัวอย่างการส่งออกที่เขียนด้วย Python ไปให้เครื่องอื่นด้วย pynsist


1. ผมมีไฟล์ myapp.py โดยมีโค้ดดังนี้

[python]
import kivy
from kivy.app import App
from kivy.uix.label import Label
class MyApp(App):

def build(self):
return Label(text='Hello world')

def main():
MyApp().run()
[/python]

2. ต่อมาสร้างไฟล์ installer.cfg เป็นไฟล์กำหนดค่าการส่งออกเป็นไฟล์ติดตั้ง
[Application]
name=My App # ชื่อโปรแกรม
version=1.0 # เวชั่น
# เรียกใช้งาน จากฟังก์ชัน 'main' จาก package 'myapp' :
entry_point=myapp:main

[Python]
version=3.5.1 # เวชั่น Python ที่ต้องการส่งออก

[Include]
# หากมีการเรียกใช้งาน packages ในโปรแกรมของคุณให้ใส่ หากมากกว่า 1 ให้ขึ้นบรรทัดใหม่
packages = kivy

3. ใช้คำสั่ง
pynsist installer.cfg

หรือ หากรันไม่ได้ ใช้คำสั่ง
python -m nsist installer.cfg

จะได้ไฟล์ My_App_1.0.exe ใน build\nsis


เราสามารถนำไฟล์เหล่านี้ไปติดตั้งให้คอมพิวเตอร์เครื่องอื่นได้เลย



[caption id="attachment_2556" align="aligncenter" width="499"]เวลาติดตั้งจะมี Python มาให้เลือกติดตั้งด้วย เวลาติดตั้งจะมี Python มาให้เลือกติดตั้งด้วย[/caption]

[caption id="attachment_2557" align="aligncenter" width="310"]เมื่อติดตั้งเสร็จ จะเห็นโปรแกรม Python ที่ส่งออกอยู่ในแถบโปรแกรมของ Windows เมื่อติดตั้งเสร็จ จะเห็นโปรแกรม Python ที่ส่งออกอยู่ในแถบโปรแกรมของ Windows[/caption]

[caption id="attachment_2558" align="aligncenter" width="802"]ลองรัน ลองรัน :)[/caption]
ข้อควรรู้

  • เวลาเอาไฟล์ไปติดตั้งเครื่องอื่นต้องเอาไฟล์ใน  build\nsis ไปทั้งหมด

  • หากทำการส่งออกโปรแกรมที่เขียนด้วย Python บนเครื่อง 64 บิต ไฟล์ที่ส่งออกจะเป็นเวชั่น 64 บิตเท่านั้น หากต้องการให้รันได้ทั้งบนเครื่อง 32 บิตและ 64 บิต ให้ทำการส่งออกที่เครื่อง 32 บิต

  • สำหรับผู้ที่ส่งออกโปรแกรมที่มีลิขสิทธิ์ คนใช้งานโปรแกรมสามารถเปิด source code โปรแกรมได้จาก build\nsis\pkgs ควรหาวิธีป้องกันรูปแบบอื่น เช่น ลงทะเบียนโปรแกรมออนไลน์ก่อนใช้งาน เป็นต้น



อ่านเอกสารได้ที่ https://pynsist.readthedocs.io/en/latest/

บทความนี้เขียนโดย นาย วรรณพงษ์  ภัททิยไพบูลย์ ที่ https://python3.wannaphong.com/

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

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

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