เมื่อไม่มีสิทธิ์ติดตั้งแพ็กเกจระบบ (No Root/Admin) มี 2 ทางหลัก:
วิธีที่ 1: เพิ่ม Path ผ่าน sys.path
>>> import os, sys
>>> file_path = 'AdditionalModules/'
>>> sys.path.append(os.path.dirname(file_path))
# ตอนนี้ Python จะหาโมดูลใน AdditionalModules/ ด้วย
- วางโมดูล (โฟลเดอร์ที่มี
__init__.py) ไว้ในAdditionalModules/ - Import ได้ปกติ:
import mymodule
วิธีที่ 2: ใช้ virtualenv (แนะนำ)
$ virtualenv myenv
$ source myenv/bin/activate
$ pip install package_name
สร้างสภาพแวดล้อม Python แยกต่างหาก จัดการ Dependency/Version เอง ไม่กระทบระบบ
เมื่อไหร่ควรใช้?
- Server ไม่มี Root Access
- โปรเจกต์หลายตัว ต้องการ Version ต่างกัน (LibFoo v1 vs v2)
- ทดสอบแพ็กเกจก่อนติดตั้งจริง
อ่านเพิ่ม: virtualenv Documentation