Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธีการแค็ปซูลโมดูล Python ในไฟล์เดียว?


โดยทั่วไปคุณไม่สามารถสรุปโมดูล Python ในไฟล์เดียวได้ เพราะการทำเช่นนี้จะทำลายวิธีการค้นหาโมดูลที่ python ใช้ (ไฟล์และไดเร็กทอรี) หากคุณไม่สามารถติดตั้งโมดูลบนเครื่องได้ (เนื่องจากไม่มีสิทธิ์เพียงพอ) คุณสามารถใช้ virtualenv หรือบันทึกไฟล์โมดูลในไดเร็กทอรีอื่นและใช้โค้ดต่อไปนี้เพื่อให้ Python ค้นหาโมดูลในโมดูลที่กำหนดได้:

>>> import os, sys
>>> file_path = 'AdditionalModules/'
>>> sys.path.append(os.path.dirname(file_path))
>>> # Now python also searches AdditionalModules folder for importing modules as we have set it on the PYTHONPATH.

คุณยังสามารถใช้ virtualenv เพื่อสร้างสภาพแวดล้อม Python แบบแยกส่วนได้ ปัญหาพื้นฐานที่กำลังได้รับการแก้ไขคือหนึ่งในการอ้างอิงและเวอร์ชัน และการอนุญาตทางอ้อม ลองนึกภาพว่าคุณมีแอปพลิเคชันที่ต้องการ LibFoo เวอร์ชัน 1 แต่แอปพลิเคชันอื่นต้องใช้เวอร์ชัน 2 คุณจะใช้แอปพลิเคชันทั้งสองนี้ได้อย่างไร หากคุณติดตั้งทุกอย่างลงใน /usr/lib/python2.7/site-packages (หรือตำแหน่งมาตรฐานของแพลตฟอร์มใดก็ตาม) เป็นเรื่องง่ายที่จะจบลงในสถานการณ์ที่คุณอัปเกรดแอปพลิเคชันที่ไม่ควรอัปเกรดโดยไม่ได้ตั้งใจ สามารถใช้ในกรณีการใช้งานของเราที่เราไม่สามารถติดตั้งแพ็คเกจบนเครื่องได้เนื่องจากเราไม่มีสิทธิ์ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ virtual env อ่านเอกสาร:https://virtualenv.pypa.io/en/stable/