มีหลายวิธีหลายวิธีหลายวิธี ฉันจะเล่นสเก็ตมากกว่าหลักการที่อยู่เบื้องหลังแต่ละและมันเป็นกรณีการใช้งาน
1. สภาพแวดล้อมแบบหลาม
มีหลายวิธีในการทำเช่นนี้ pipenv
คอนโดrequirments.txt
ฯลฯ ฯลฯ
ด้วยบางสิ่งเหล่านี้คุณสามารถระบุเวอร์ชันของงูหลามได้ สำหรับผู้อื่นเพียงระบุรุ่นของ python ที่คุณรู้ว่าใช้งานได้ตัวอย่างเช่นถ้าคุณใช้ python 3.7 ก็ไม่น่าจะรองรับ 3.6 มีการเปลี่ยนแปลงเล็กน้อยเพียงหนึ่งหรือสองครั้ง 3.8 ควรทำงานเช่นกัน
setup.py
อีกวิธีที่คล้ายกันคือ โดยทั่วไปจะใช้เพื่อแจกจ่ายไลบรารี - เช่น PyInstaller (โซลูชันอื่นที่ฉันจะกล่าวถึงด้านล่าง), หรือ numpy, หรือ wxPython หรือ PyQt5 เป็นต้น - สำหรับการนำเข้า / ใช้บรรทัดคำสั่ง คู่มือบรรจุภัณฑ์หลามนั้นค่อนข้างมีประโยชน์และมีบทช่วยสอนมากมาย (google python setup.py tutorial
) คุณสามารถระบุข้อกำหนดในไฟล์เหล่านี้ได้
2. ภาชนะ
นักเทียบท่าเป็นตัวที่ใหญ่ หากคุณยังไม่เคยได้ยินฉันจะแปลกใจ google สรุปย่อเกิดขึ้นกับสิ่งนี้ซึ่งฉันจะอ้างอิงส่วนหนึ่งของ:
แล้วทำไมทุกคนถึงรักคอนเทนเนอร์และนักเทียบท่า James Bottomley ซึ่งเคยเป็น CTO ของ Parallels ในการทำเวอร์ชวลไลเซชันเซิร์ฟเวอร์และผู้พัฒนาเคอร์เนลของลีนุกซ์อธิบาย VM hypervisors เช่น Hyper-V, KVM และ Xen ทั้งหมดนี้เป็น "การจำลองฮาร์ดแวร์เสมือนจริง ความต้องการของระบบ."
อย่างไรก็ตามคอนเทนเนอร์ใช้ระบบปฏิบัติการที่ใช้ร่วมกัน ซึ่งหมายความว่าพวกเขามีประสิทธิภาพมากกว่าไฮเปอร์ไวเซอร์ในแง่ทรัพยากรระบบ แทนที่จะใช้การจำลองเสมือนของฮาร์ดแวร์คอนเทนเนอร์จะอยู่ด้านบนของอินสแตนซ์ Linux เดียว ซึ่งหมายความว่าคุณสามารถ "ทิ้งขยะ VM ไร้ประโยชน์ 99.9 เปอร์เซ็นต์ทิ้งไว้ให้คุณด้วยแคปซูลขนาดเล็กที่เรียบร้อยซึ่งบรรจุแอปพลิเคชันของคุณ"
ที่ควรสรุปให้คุณ (หมายเหตุคุณไม่จำเป็นต้องใช้ระบบปฏิบัติการเฉพาะสำหรับตู้คอนเทนเนอร์)
3. ไฟล์ที่ปฏิบัติการได้
มี 2 เครื่องมือหลักที่ทำเช่นนี้ในขณะที่เขียน PyInstaller และ cx_Freeze ทั้งสองได้รับการพัฒนาอย่างแข็งขัน ทั้งคู่เป็นโอเพ่นซอร์ส
คุณใช้สคริปต์ของคุณและเครื่องมือจะคอมไพล์ไปยัง bytecode ค้นหาการนำเข้าคัดลอกสิ่งเหล่านั้นและสร้างสภาพแวดล้อมแบบพกพาที่เรียกใช้สคริปต์ของคุณบนระบบเป้าหมายโดยไม่ต้องมีผู้ใช้ปลายทางที่ต้องการงูเหลือม
ส่วนตัวฉันชอบ PyInstaller - ฉันเป็นหนึ่งในนักพัฒนา PyInstaller ให้การทำงานทั้งหมดผ่านสคริปต์บรรทัดคำสั่งและสนับสนุนไลบรารีส่วนใหญ่ที่คุณสามารถนึกถึง - และสามารถขยายได้เพื่อรองรับเพิ่มเติม cx_Freeze ต้องการสคริปต์การตั้งค่า
เครื่องมือทั้งสองรองรับ windows, Linux, macOS และอื่น ๆ PyInstaller สามารถสร้าง exes ไฟล์เดียวหรือหนึ่งบันเดิลโฟลเดอร์ในขณะที่ cx_Freeze สนับสนุนเพียงหนึ่งบันเดิลโฟลเดอร์ PyInstaller 3.6 รองรับไพ ธ อน 2.7 และ 3.5-3.7 - แต่ 4.0 จะไม่รองรับไพ ธ อน 2 cx_Freeze หล่นสนับสนุนไพ ธ อน 2 เป็นรุ่นใหญ่ครั้งล่าสุด (6.0 ฉันคิดว่า)
อย่างไรก็ตามมีคุณสมบัติเกี่ยวกับเครื่องมือเพียงพอแล้ว คุณสามารถดูคนเหล่านั้นด้วยตัวเอง (ดูhttps://pyinstaller.orgและhttps://cx-freeze.readthedocs.ioสำหรับข้อมูลเพิ่มเติม)
เมื่อใช้วิธีการกระจายนี้คุณมักจะให้ซอร์สโค้ดบน GitHub repo สองสาม exes (หนึ่งสำหรับแต่ละแพลตฟอร์ม) พร้อมสำหรับการดาวน์โหลดและคำแนะนำเกี่ยวกับวิธีการสร้างรหัสลงในไฟล์ที่ปฏิบัติการได้