ภาพรวม PyInstaller
PyInstaller รวมแอปพลิเคชัน Python และการขึ้นต่อกันทั้งหมดไว้ในแพ็คเกจเดียว ผู้ใช้สามารถเรียกใช้แอปแบบแพ็กเกจได้โดยไม่ต้องติดตั้งล่าม Python หรือโมดูลใดๆ
เอกสารประกอบ: | https://pyinstaller.org/ |
---|
รหัส: | https://github.com/pyinstaller/pyinstaller |
---|
PyInstaller อ่านสคริปต์ Python ที่คุณเขียน โดยจะวิเคราะห์โค้ดของคุณเพื่อค้นหาโมดูลและไลบรารีอื่นๆ ที่สคริปต์ของคุณต้องการเพื่อดำเนินการ จากนั้นจะรวบรวมสำเนาของไฟล์เหล่านั้นทั้งหมด รวมถึงล่าม Python ที่ใช้งานอยู่ด้วย! -- และรวมไว้กับสคริปต์ของคุณในโฟลเดอร์เดียว หรืออาจรวมไว้ในไฟล์ปฏิบัติการไฟล์เดียว
PyInstaller ได้รับการทดสอบกับ Windows, macOS และ GNU/Linux อย่างไรก็ตาม ไม่ใช่ cross-compiler: หากต้องการสร้างแอป Windows ให้คุณเรียกใช้ PyInstaller ใน Windows ในการสร้างแอป GNU/Linux ให้คุณเรียกใช้งานใน GNU/Linux ฯลฯ PyInstaller ใช้งานได้สำเร็จกับ AIX, Solaris, FreeBSD และ OpenBSD แต่ไม่ได้ทดสอบเทียบกับแอปเหล่านี้โดยเป็นส่วนหนึ่งของการทดสอบการรวมระบบอย่างต่อเนื่อง
ข้อได้เปรียบหลัก
- ใช้งานได้ทันทีกับ Python เวอร์ชัน 3.8-3.13
- มีหลายแพลตฟอร์มอย่างสมบูรณ์ และใช้การรองรับระบบปฏิบัติการเพื่อโหลดไลบรารีไดนามิก จึงรับประกันความเข้ากันได้เต็มรูปแบบ
- รวมแพ็คเกจ Python หลักอย่างถูกต้อง เช่น numpy, PyQt5, PySide2, PyQt6, PySide6, wxPython, matplotlib และอื่นๆ ที่ใช้งานได้ทันที
- เข้ากันได้กับแพ็คเกจของบุคคลที่สามจำนวนมากแบบสำเร็จรูป (เทคนิคที่จำเป็นทั้งหมดในการทำให้แพ็คเกจภายนอกทำงานได้นั้นได้รวมเข้าด้วยกันแล้ว)
- ทำงานร่วมกับการลงนามโค้ดบน macOS
- รวม MS Visual C++ DLLs บน Windows
การติดตั้ง
PyInstaller พร้อมใช้งานบน PyPI คุณสามารถติดตั้งผ่าน pip:
ข้อกำหนดและแพลตฟอร์มที่ผ่านการทดสอบ
- หลาม:
- 3.8-3.13. โปรดทราบว่า Python 3.10.0 มีข้อบกพร่องที่ทำให้ PyInstaller ไม่รองรับ PyInstaller จะไม่ทำงานกับ Python 3.14 รุ่นเบต้า
- วินโดวส์ (32 บิต/64 บิต/ARM64):
- PyInstaller ควรทำงานบน Windows 7 หรือใหม่กว่า แต่เรารองรับ Windows 8+ อย่างเป็นทางการเท่านั้น
- การรองรับ Python ที่ติดตั้งจากร้านค้า Windows โดยไม่ใช้สภาพแวดล้อมเสมือนต้องใช้ PyInstaller 4.4 หรือใหม่กว่า
- ลินุกซ์:
- การแจกแจงตาม GNU libc บนสถาปัตยกรรม
x86_64
, aarch64
, i686
, ppc64le
, s390x
- การแจกแจงตาม musl libc บนสถาปัตยกรรม
x86_64
, aarch64
- ldd: แอปพลิเคชันคอนโซลเพื่อพิมพ์ไลบรารีที่ใช้ร่วมกันซึ่งแต่ละโปรแกรมหรือไลบรารีที่ใช้ร่วมกันต้องการ โดยทั่วไปจะพบได้ใน glibc ของแพ็คเกจการแจกจ่ายหรือ libc-bin
- objdump: แอปพลิเคชันคอนโซลเพื่อแสดงข้อมูลจากไฟล์อ็อบเจ็กต์ โดยทั่วไปจะพบได้ใน binutils แพ็คเกจการแจกจ่าย
- objcopy: แอปพลิเคชันคอนโซลเพื่อคัดลอกและแปลไฟล์อ็อบเจ็กต์ โดยทั่วไปจะพบได้ใน binutils แพ็คเกจการแจกจ่ายเช่นกัน
- ผู้ใช้ Raspberry Pi บน
armv5
- armv7
ควรเพิ่ม piwheels เป็น url ดัชนีพิเศษ จากนั้น pip install pyinstaller
ตามปกติ
- macOS (
x86_64
หรือ arm64
): - macOS 10.15 (Catalina) หรือใหม่กว่า
- รองรับการสร้างแอปพลิเคชัน
universal2
โดยมีเงื่อนไขว่าการติดตั้ง Python และการขึ้นต่อกันทั้งหมดของคุณได้รับการคอมไพล์ universal2
ด้วย
การใช้งาน
การใช้งานขั้นพื้นฐานนั้นง่ายมาก เพียงเรียกใช้กับสคริปต์หลักของคุณ:
pyinstaller /path/to/yourscript.py
สำหรับรายละเอียดเพิ่มเติม โปรดดูคู่มือ
แพลตฟอร์มที่ยังไม่ผ่านการทดสอบ
แพลตฟอร์มต่อไปนี้ได้รับการสนับสนุน และยินดีรับข้อเสนอแนะหรือการปรับปรุงเกี่ยวกับสิ่งเหล่านี้
- ฟรีBSD
- โซลาริส
- เอไอเอ็กซ์
- AIX 6.1 หรือใหม่กว่า PyInstaller จะไม่ทำงานกับไลบรารี Python ที่เชื่อมโยงแบบคงที่
- ldd
- Linux บนการผสมผสานการใช้งาน/สถาปัตยกรรม libc อื่นๆ ที่ไม่ได้ระบุไว้ข้างต้น
ก่อนที่จะใช้แพลตฟอร์มใดๆ ที่สนับสนุน คุณจะต้องสร้าง PyInstaller bootloader ก่อน สิ่งนี้จะเกิดขึ้นโดยอัตโนมัติเมื่อคุณ pip install pyinstaller
โดยมีเงื่อนไขว่าคุณมีคอมไพเลอร์ C ที่เหมาะสม (โดยทั่วไปจะเป็น gcc
หรือ clang
) และส่วนหัวการพัฒนาของ zlib ติดตั้งไว้แล้ว
สนับสนุน
- คู่มือการดีบักอย่างเป็นทางการ: https://pyinstaller.org/en/v6.11.1/when-things-go-wrong.html
- หัวข้อความช่วยเหลือที่ผู้ใช้มีส่วนร่วม: https://github.com/pyinstaller/pyinstaller/wiki
- ฟอรัมถามตอบบนเว็บ: https://github.com/pyinstaller/pyinstaller/discussions
- ฟอรัมถามตอบทางอีเมล: https://groups.google.com/g/pyinstaller
การเปลี่ยนแปลงในข่าวประชาสัมพันธ์ฉบับนี้
คุณสามารถดูรายการการเปลี่ยนแปลงโดยละเอียดในรุ่นนี้ได้ในส่วนบันทึกการเปลี่ยนแปลงของคู่มือ