นี่คือบางส่วนที่พบบ่อย โครงการทั้งหมดในรายการด้านล่างนี้จะได้รับการดูแลอย่างแข็งขันตั้งแต่การแก้ไขครั้งล่าสุดของฉัน (มกราคม 2020) เว้นแต่จะระบุไว้อย่างชัดเจน
ฉันได้รวมลิงค์ไปยังเว็บไซต์ repos และรายชื่อ PyPi ที่เกี่ยวข้องไว้ด้วยในกรณีที่คุณต้องการตรวจสอบด้วยตัวเองว่ามีการอัปเดตบ่อยเพียงใด
นอกจากนี้หากไม่ระบุไว้เป็นอย่างอื่นโปรแกรมทั้งหมดที่ระบุไว้ด้านล่างจะสร้าง exe โดยเฉพาะสำหรับระบบปฏิบัติการที่กำลังทำงานอยู่ตัวอย่างเช่นการเรียกใช้ Pyinstaller ใน Windows จะสร้าง exe ของ Windows แต่การเรียกใช้ Pyinstaller ใน Linux จะสร้าง exe ของ Linux หากคุณต้องการที่จะผลิต exe สำหรับระบบปฏิบัติการหลายระบบคุณจะต้องมองในการใช้เครื่องเสมือนหรือลักษณะในการใช้สิ่งที่ชอบไวน์
โปรแกรมต่อไปนี้ทำงานในลักษณะเดียวกัน - รวม Python และโปรแกรมของคุณเข้าด้วยกันโดยรวมเข้าด้วยกันอย่างมีประสิทธิภาพเพื่อสร้างไฟล์ปฏิบัติการ
PyInstaller:
- ลิงค์ : เว็บไซต์ || Repo || PyPi
- รองรับ : Python 2.7 และ Python 3.4 - 3.7 บน Windows, Mac และ Linux
cx_Freeze:
- ลิงค์: เว็บไซต์ || Repo || PyPi
- รองรับ: Python 2.7 และ 3.5 - 3.8 บน Windows, Mac และ Linux
py2app:
- ลิงค์: เว็บไซต์ || Repo || PyPi
- รองรับ: Python 2.7 และ 3.3 (?) - 3.7 (?) บน Mac เท่านั้น
- หมายเหตุ:ในการแก้ไขครั้งล่าสุดของฉันฉันไม่สามารถสรุปช่วงที่แน่นอนของเวอร์ชัน Python ที่ pyapp สนับสนุนได้ รุ่นล่าสุดกล่าวถึงการสนับสนุน Python 3.7
หมายเหตุ:เวอร์ชันก่อนหน้าของโพสต์นี้รวมการเขียนสำหรับpy2exe ( repo ) และbbfreeze ( repo ) ทั้งสองโครงการถูกลบออกจากรายการนี้: พวกเขาเห็นกิจกรรมเล็ก ๆ น้อย ๆ มาหลายปีแล้วและดูเหมือนจะไม่ได้รับการดูแลอย่างสมบูรณ์ ดูประวัติการแก้ไขสำหรับการเขียนเก่า
แน่นอนว่านั่นไม่ใช่วิธีเดียวในการทำสิ่งต่างๆ:
pynsist:
- ลิงค์: เว็บไซต์ || Repo || PyPi
- รองรับ: Python ทุกรุ่น? หมายเหตุ - จะสร้างโปรแกรมติดตั้ง Windowsเท่านั้น
หมายเหตุอื่น ๆ :
Pynsist ดูเหมือนจะสนับสนุนการรวม Python เวอร์ชันใด ๆ เข้าด้วยกันกับแอปพลิเคชันของคุณ อย่างไรก็ตามเครื่องมือนี้ต้องใช้ Python 3.5+ เพื่อให้ทำงานได้
Pynsist จะสร้างตัวติดตั้ง Windows สำหรับโปรแกรมของคุณซึ่งจะติดตั้ง Python บนคอมพิวเตอร์ของผู้ใช้โดยตรงแทนที่จะรวมเข้ากับโค้ดของคุณและสร้างทางลัดที่เชื่อมโยงไปยังสคริปต์ Python ของคุณ แม้ว่าโปรแกรมนี้จะสร้างเฉพาะโปรแกรมติดตั้ง Windows แต่ดูเหมือนว่าคุณยังสามารถเรียกใช้ Pynsistบนคอมพิวเตอร์ Mac และ Linux ได้
Nuitka:
- ลิงค์: เว็บไซต์ || Repo (กระจก Github) || PyPi
- รองรับ: Python 2.6 - 2.7 และ Python 3.3 - 3.7 บน Windows, Mac และ Linux
- หมายเหตุอื่น ๆ : Nuitka จะรวบรวมโค้ด Python ของคุณอย่างแท้จริงและสร้าง exe (ตรงข้ามกับโปรเจ็กต์อื่น ๆ ซึ่งรวมถึง Python ด้วย) เพื่อพยายามเร่งความเร็วโค้ดของคุณ ผลข้างเคียงคุณจะได้รับ exe ที่มีประโยชน์ซึ่งคุณสามารถแจกจ่ายได้ โปรดทราบว่าคุณต้องมีคอมไพเลอร์ C ++ในระบบของคุณ
cython:
- ลิงค์: เว็บไซต์ || Repo || PyPi
- รองรับ: Python 2.6 - 2.7 และ Python 3.2 - 3.8 บน Windows, Mac และ Linux
- หมายเหตุอื่น ๆ : Cython คล้ายกับ Nuitka ตรงที่เป็นคอมไพเลอร์ Python อย่างไรก็ตามแทนที่จะรวบรวมรหัสของคุณโดยตรงมันจะรวบรวมเป็น C จากนั้นคุณสามารถใช้รหัส C นั้นและเปลี่ยนรหัสของคุณให้เป็น exeได้ คุณจะต้องมีคอมไพเลอร์ C ในระบบของคุณ
ความชอบส่วนตัวของฉันคือการใช้ PyInstaller เนื่องจากเป็นวิธีที่ง่ายที่สุดสำหรับฉันในการเริ่มต้นใช้งานได้รับการออกแบบมาเพื่อทำงานร่วมกับไลบรารียอดนิยมต่างๆเช่น numpy หรือ pygame และเข้ากันได้ดีกับ OSes และ Python เวอร์ชันต่างๆ
อย่างไรก็ตามฉันยังสร้าง exes ต่างๆโดยใช้ cx_Freeze ได้สำเร็จโดยไม่มีปัญหามากเกินไปดังนั้นคุณควรลองใช้โปรแกรมนั้นด้วย
ฉันยังไม่มีโอกาสลอง pynist, Nuitka หรือ Cython อย่างกว้างขวาง แต่ดูเหมือนว่าจะเป็นโซลูชันที่น่าสนใจและเป็นนวัตกรรมใหม่ หากคุณประสบปัญหาในการใช้โปรแกรมกลุ่มแรกอาจคุ้มค่าที่จะลองใช้หนึ่งในสามโปรแกรมนี้ เนื่องจากโปรแกรมเหล่านี้ทำงานแตกต่างกันโดยพื้นฐานแล้วโปรแกรมสไตล์ Pyinstaller / cx_freeze พวกเขาอาจประสบความสำเร็จในกรณีขอบแปลก ๆ ที่กลุ่มแรกล้มเหลว
โดยเฉพาะอย่างยิ่งฉันคิดว่า pynist เป็นวิธีที่ดีในการหลีกเลี่ยงปัญหาทั้งหมดในการแจกจ่ายโค้ดของคุณโดยสิ้นเชิง: Macs และ Linux มีการรองรับ Python ดั้งเดิมอยู่แล้วและการติดตั้ง Python บน Windows อาจเป็นวิธีที่สะอาดที่สุดอย่างแท้จริง (ข้อเสียคือตอนนี้คุณต้องกังวลเกี่ยวกับการกำหนดเป้าหมายหลายเวอร์ชันของ Python + การติดตั้งไลบรารี)
Nuitka และ Cython (ในประสบการณ์ที่ จำกัด ของฉัน) ดูเหมือนจะทำงานได้ดีพอสมควร อีกครั้งฉันไม่ได้ทดสอบพวกเขาอย่างกว้างขวางด้วยตัวเองดังนั้นข้อสังเกตหลักของฉันคือพวกเขาดูเหมือนจะใช้เวลานานกว่ามากในการสร้าง exe จากนั้นโปรแกรมสไตล์ "หยุด" จะทำ
สิ่งที่กล่าวมาทั้งหมดนี้การแปลงโปรแกรม Python ของคุณเป็นไฟล์ปฏิบัติการไม่จำเป็นต้องเป็นวิธีเดียวในการแจกจ่ายโค้ดของคุณ หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับตัวเลือกอื่น ๆ โปรดดูลิงก์ต่อไปนี้: