PyOxidizer เป็นยูทิลิตี้สำหรับบรรจุโครงการ Python ลงในไฟล์ปฏิบัติการ

ไพออกซิไดเซอร์

ไม่กี่วันที่ผ่านมา นักพัฒนาเปิดตัวยูทิลิตี้ PyOxidizer เวอร์ชันแรกซึ่งเสนอเป็น ยูทิลิตี้ที่สามารถใช้เพื่อรวมโปรเจ็กต์ Python ลงในไฟล์ปฏิบัติการแยกต่างหากรวมถึงล่าม Python และไลบรารีและทรัพยากรที่จำเป็นทั้งหมด

ไฟล์ดังกล่าวสามารถทำงานได้ในสภาพแวดล้อมโดยไม่ต้องติดตั้งชุดเครื่องมือ Python หรือไม่คำนึงถึงความพร้อมใช้งานของ Python เวอร์ชันที่ต้องการ

PyOxidizer ยังสามารถสร้างไฟล์ปฏิบัติการที่เกี่ยวข้องกับสแตติกที่ไม่เกี่ยวข้องกับไลบรารีระบบ รหัสโครงการเขียนด้วยภาษา Rust และเผยแพร่ภายใต้ MPL (Mozilla Public License) 2.0

เกี่ยวกับ PyOxidizer?

โครงการ ขึ้นอยู่กับโมดูลที่มีชื่อเดียวกันสำหรับภาษา Rust ซึ่งช่วยให้คุณสามารถฝังตัวแปล Python ในโปรแกรม Rust ได้ เพื่อเรียกใช้สคริปต์ Python กับพวกเขา

ไพออกซิไดเซอร์ ตอนนี้ได้ย้ายไปไกลกว่าปลั๊กอินสำหรับ Rust แล้วและอยู่ในตำแหน่งเป็นเครื่องมือสำหรับผู้ชมที่กว้างขึ้นสำหรับการสร้างและแจกจ่ายแพ็คเกจ Python แบบสแตนด์อโลน

PyOxidizer โปรแกรมอรรถประโยชน์ที่มีจุดมุ่งหมายเพื่อแก้ปัญหาวิธีการแจกจ่ายแอปพลิเคชัน Python

สำหรับผู้ที่ไม่จำเป็นต้องแจกจ่ายแอปพลิเคชันในรูปแบบของไฟล์ปฏิบัติการ PyOxidizer เสนอโอกาสในการสร้างไลบรารีที่เหมาะสมเพื่อเชื่อมโยงกับแอปพลิเคชันใด ๆ เพื่อฝังตัวแปล Python และชุดส่วนขยายที่จำเป็นไว้ในนั้น

โดยทั่วไปแล้วการแจกจ่ายแอปพลิเคชัน Python ถือเป็นปัญหาที่ยังไม่ได้รับการแก้ไขเนื่องจาก Russel Keith-Magee ระบุว่าการกระจายรหัสเป็นภัยคุกคามที่มีอยู่ต่อการมีอายุยืนยาวสำหรับ Python ในคำพูดของเขา Python ไม่เคยมีประวัติที่สอดคล้องกันว่าฉันให้รหัสของฉันกับคนอื่นอย่างไรโดยเฉพาะอย่างยิ่งถ้าบุคคลนั้นไม่ใช่ผู้พัฒนาและต้องการใช้แอปพลิเคชันของฉัน

สำหรับผู้ใช้ปลายทางการส่งมอบโปรเจ็กต์เป็นไฟล์ปฏิบัติการไฟล์เดียว ช่วยลดความยุ่งยากในการติดตั้งและลดการเลือกการอ้างอิงซึ่งมีความสำคัญตัวอย่างเช่นสำหรับโครงการ Python ที่ซับซ้อนเช่นโปรแกรมตัดต่อวิดีโอ

ในขณะที่ในทางกลับกัน สำหรับนักพัฒนาแอพพลิเคชั่น PyOxidizer ช่วยให้พวกเขาประหยัดเวลาในการจัดระเบียบการส่งแอพพลิเคชั่น โดยไม่ต้องใช้เครื่องมือต่าง ๆ เพื่อสร้างแพ็คเกจสำหรับระบบปฏิบัติการที่แตกต่างกัน

PyOxidizer ทำงานอย่างไร

การใช้งานสร้างที่เสนอ นอกจากนี้ยังมีผลดีต่อประสิทธิภาพ: ไฟล์ที่สร้างใน PyOxidizer ทำงานได้เร็วกว่าการใช้ระบบ Python โดยการลบการนำเข้าและกำหนดโมดูลพื้นฐาน

ใน PyOxidizer โมดูลถูกนำเข้าจากหน่วยความจำ (โมดูลในตัวทั้งหมดจะโหลดลงในหน่วยความจำทันทีจากนั้นใช้โดยไม่ต้องเข้าถึงดิสก์) ในการทดสอบเวลาเริ่มต้นแอปพลิเคชันด้วย PyOxidizer จะลดลงครึ่งหนึ่งโดยประมาณ

จากโครงการที่มีอยู่คล้ายกันสามารถสังเกตได้: PyInstaller (คลายไฟล์ลงในไดเร็กทอรีชั่วคราวและนำเข้าโมดูลจากไฟล์)

  • Py2exe (เชื่อมโยงกับแพลตฟอร์ม Windows และต้องการการแจกจ่ายไฟล์หลายไฟล์), py2app (เชื่อมโยงกับ macOS)
  • Cx-freeze (ต้องใช้บรรจุภัณฑ์อ้างอิงแยกต่างหาก), Shiv และ PEX (สร้างแพ็คเกจ zip และต้องใช้ Python ในระบบ)
  • Nuitka (รวบรวมโค้ดไม่ใช่ตัวแปลภาษาที่ฝังไว้), pynsist (เชื่อมโยงกับ Windows), PyRun (การพัฒนาที่เป็นกรรมสิทธิ์โดยไม่มีคำอธิบายหลักการทำงาน)

ในขั้นตอนปัจจุบันของการพัฒนา PyOxidizer ได้ใช้ฟังก์ชันหลักในการสร้างไฟล์ปฏิบัติการสำหรับ Windows, macOS และ Linux แล้ว

จากความสามารถที่กว้างไกลพบว่าไม่มีสภาพแวดล้อมการคอมไพล์มาตรฐานทำให้ไม่สามารถสร้างแพ็คเกจในรูปแบบ MSI, DMG และ deb / rpm พร้อมกับปัญหาแพ็กเกจสำหรับโปรเจ็กต์ที่เกี่ยวข้องกับส่วนขยายที่ซับซ้อนของภาษา C

ในขณะที่ไม่มีคำแนะนำในการสนับสนุนการจัดส่ง ("pyoxidizer add", "pyoxidizer analysis" และ "pyoxidizer upgrade") และการสนับสนุน Terminfo และ Readline ที่ จำกัด แต่การขาดการสนับสนุนสำหรับเวอร์ชันอื่นที่ไม่ใช่ Python 3.7 การขาดการสนับสนุนการบีบอัดทรัพยากร ไม่สามารถข้ามคอมไพล์ได้

Fuente: https://pyoxidizer.readthedocs.io


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา