แพ็กเกจ Python เวอร์ชันเฉพาะอาจจำเป็นขณะพัฒนาแอปพลิเคชันที่ใช้ Python อย่างไรก็ตาม หากติดตั้งเวอร์ชันเดียวกันของแพ็กเกจนี้สำหรับการใช้งานระบบทั่วไป อาจขัดแย้งกับความต้องการของแอปพลิเคชันอื่น ดังนั้นจึงพึงประสงค์ให้มีสภาพแวดล้อมแบบติดกัน (side-by-side) สำหรับแต่ละวัตถุประสงค์เพื่อแก้ไขปัญหาความเข้ากันได้
สภาพแวดล้อมเสมือน (Virtual Environments) อนุญาตให้ติดตั้งแพ็กเกจ Python ในตำแหน่งที่แยกต่างหากสำหรับแอปพลิเคชันเฉพาะ แทนที่จะติดตั้งแบบกลาง
โมดูล venv ในไลบรารีมาตรฐานของ Python ใช้สำหรับสร้างสภาพแวดล้อมเสมือน สภาพแวดล้อมเสมือนคือไดเรกทอรีในระบบไฟล์ที่มีสำเนาของตัวแปล Python และสคริปต์อื่นๆ ของตัวเอง คำสั่งต่อไปนี้สร้างสภาพแวดล้อมเสมือนในไดเรกทอรีที่ระบุชื่อ:
C:\python37>python -m venv e:\testenv
คุณจะพบไดเรกทอรีใหม่ถูกสร้างขึ้นตามที่ระบุ คำสั่งข้างต้นสามารถใช้สวิตช์เพิ่มเติมได้ดังนี้:
| --system-site-packages | ให้สภาพแวดล้อมเสมือนเข้าถึงไดเรกทอรี system site-packages |
| --symlinks | พยายามใช้ symlink แทนการคัดลอก |
| --copies | พยายามใช้การคัดลอกแทน symlink |
| --clear | ลบเนื้อหาของไดเรกทอรีสภาพแวดล้อมหากมีอยู่แล้ว |
| --upgrade | อัปเกรดไดเรกทอรีสภาพแวดล้อมเพื่อใช้ Python เวอร์ชันนี้ |
| --without-pip | ข้ามการติดตั้งหรืออัปเกรด pip ในสภาพแวดล้อมเสมือน (pip ถูกบูตสแทรปโดยค่าเริ่มต้น) |
โฟลเดอร์ 'scripts' ภายใต้ ENV_DIR (ในกรณีนี้คือ testenv) มีสำเนาท้องถิ่นของตัวแปล Python, ตัวติดตั้ง pip และสคริปต์สำหรับเปิดใช้งานและปิดใช้งานสภาพแวดล้อม:
activate activate.bat activate.ps1 deactivate.bat easy_install-3.7.exe easy_install.exe pip.exe pip3.7.exe pip3.exe python.exe pythonw.exe
เปิดใช้งานสภาพแวดล้อมเสมือน
เพื่อเริ่มต้น Python ในสภาพแวดล้อมที่แยกต่างหาก ต้องเปิดใช้งานก่อน สำหรับวัตถุประสงค์นี้ ต้องเรียกใช้ 'activate.bat' จากบรรทัดคำสั่ง:
E:\testenv>scripts\activate (testenv) E:\testenv>python Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>>
ชื่อของสภาพแวดล้อมเสมือนปรากฏในวงเล็บทางซ้ายของพรอมต์ DOS ตอนนี้คุณสามารถใช้ Python ในสภาพแวดล้อมเสมือนได้
หากติดตั้งแพ็กเกจใดๆ โดยใช้ยูทิลิตี้ pip3 ในโฟลเดอร์ scripts ของสภาพแวดล้อมเสมือน จะถูกติดตั้งแบบท้องถิ่นและจะไม่พร้อมใช้งานสำหรับการใช้งานระบบทั่วไป
ปิดใช้งานสภาพแวดล้อมเสมือน
เพื่อกลับสู่สภาพแวดล้อมปกติ สภาพแวดล้อมเสมือนควรปิดใช้งานโดยใช้ 'deactivate.bat' ในโฟลเดอร์ scripts:
>>> quit() (testenv) E:\testenv>scripts\deactivate E:\testenv>
สำหรับ Python ก่อนเวอร์ชัน 3.3 ให้ใช้ virtualenv ซึ่งต้องติดตั้งแยกต่างหาก
โมดูล venv กำหนดคลาส EnvironmentBuilder สำหรับการสร้างสภาพแวดล้อมเสมือนแบบโปรแกรม