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

การสร้างสภาพแวดล้อมเสมือนใน Python (venv)

แพ็กเกจ 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 สำหรับการสร้างสภาพแวดล้อมเสมือนแบบโปรแกรม