เริ่มต้นใช้งาน Virtual Environments ใน Python
เผยแพร่แล้ว: 2022-11-07ในบทความนี้ คุณจะได้เรียนรู้วิธีเริ่มต้นใช้งานสภาพแวดล้อมเสมือนใน Python ทั้งในระบบปฏิบัติการ Windows และ Linux
เมื่อคุณเริ่มทำงานในหลายโครงการในสภาพแวดล้อมการพัฒนาในพื้นที่ของคุณ คุณมักจะประสบปัญหาการพึ่งพา การสร้างสภาพแวดล้อมเสมือนสำหรับแต่ละโปรเจ็กต์สามารถช่วยให้คุณจัดการการขึ้นต่อกันและข้อกำหนดของโปรเจ็กต์ได้ดียิ่งขึ้น
เพื่อใช้ประโยชน์จากสภาพแวดล้อมเสมือนใน Python มาเรียนรู้การสร้างและเปิดใช้งานสภาพแวดล้อมเสมือนกันเถอะ
สภาพแวดล้อมเสมือนจริงคืออะไร?
สภาพแวดล้อมเสมือนเป็นสภาพแวดล้อม ที่แยกจากกันและเป็นอิสระที่มีโค้ดและการขึ้นต่อกันของโปรเจ็กต์
แต่ทำไมคุณจึงควรใช้สภาพแวดล้อมเสมือน
สภาพแวดล้อมเสมือนช่วยให้คุณติดตั้งและใช้ไลบรารีเดียวกันในเวอร์ชันต่างๆ สำหรับโครงการต่างๆ ได้ การใช้สภาพแวดล้อมเสมือนยังช่วยให้แน่ใจว่าจะไม่มีการเปลี่ยนแปลงใดๆ เมื่อโปรเจ็กต์ตั้งแต่สองโปรเจ็กต์ขึ้นไปใช้เวอร์ชันที่ต่างกัน มาทำความเข้าใจเรื่องนี้ให้ละเอียดยิ่งขึ้น
การติดตั้งแพ็คเกจใน Python
ไลบรารีมาตรฐานของ Python มาพร้อมกับโมดูลที่มีประโยชน์มากมายสำหรับการทดสอบหน่วย การโต้ตอบกับระบบปฏิบัติการ การทำงานกับวันที่และเวลา และอื่นๆ
อย่างไรก็ตาม เมื่อทำงานกับโปรเจ็กต์ Python คุณมักจะต้องติดตั้งแพ็คเกจอื่น ซึ่งพัฒนาโดยชุมชน Python สิ่งนี้เป็นจริงโดยเฉพาะอย่างยิ่งสำหรับแอปพลิเคชัน เช่น การคัดลอกเว็บสำหรับการรวบรวมข้อมูล การเรียนรู้ของเครื่อง และแอปพลิเคชันบนเว็บ
ในการติดตั้งและจัดการแพ็คเกจเหล่านี้ คุณสามารถใช้ conda หรือ pip
แต่ละโปรเจ็กต์ต้องการชุดแพ็คเกจเฉพาะที่คุณต้องติดตั้ง อย่างไรก็ตาม เมื่อคุณติดตั้งแพ็คเกจทั้งหมดในสภาพแวดล้อมการพัฒนาบนเครื่องของคุณ โครงการทั้งหมดจะแชร์แพ็คเกจที่ติดตั้งทั่วโลก

เหตุใดจึงเป็นปัญหา
คุณอาจมีแพ็คเกจ N ในสภาพแวดล้อมการพัฒนาของคุณ อย่างไรก็ตาม โครงการที่คุณกำลังดำเนินการอยู่อาจต้องการเพียง 3 โครงการเท่านั้น เมื่อโปรเจ็กต์ทั้งหมดของคุณใช้การติดตั้งร่วมกัน เป็นการยากมากที่จะระบุว่าโปรเจ็กต์ใดจำเป็นต้องใช้แพ็กเกจใด ซึ่งเป็นการขึ้นต่อกันที่เกี่ยวข้องกับแต่ละโปรเจ็กต์
แนวทางนี้ยังมีข้อจำกัดอีกประการหนึ่ง สมมติว่าคุณมีโครงการ Django 2.2 ในไลบรารีโครงการของคุณ คุณตัดสินใจที่จะเริ่มทำงานในโครงการที่ใช้ Django 4 ดังนั้น คุณจึงติดตั้ง Django เวอร์ชันล่าสุดในสภาพแวดล้อมการพัฒนาเดียวกัน
จะเกิดอะไรขึ้นกับการติดตั้งที่มีอยู่
มันถูกลบและแทนที่ด้วยเวอร์ชันของ Django ที่คุณติดตั้ง ฟีเจอร์บางอย่างอาจเลิกใช้แล้วสำหรับเวอร์ชันที่เสถียรที่ใหม่กว่า และโครงการ Django ก่อนหน้าของคุณอาจไม่ทำงานตามที่คาดไว้

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

ทบทวนตัวอย่างโปรเจ็กต์ Django ด้วยสภาพแวดล้อมเสมือน คุณสามารถเรียกใช้ทั้งโปรเจ็กต์ Django 2.2 และ Django 4 ได้โดยไม่มีข้อขัดแย้งใดๆ เนื่องจากการติดตั้ง Django ไม่ใช่การติดตั้งทั่วทั้งระบบอีกต่อไป แต่ถูกจำกัดให้อยู่ในสภาพแวดล้อมเสมือนของโปรเจ็กต์ที่เกี่ยวข้อง
ในสาระสำคัญ: สภาพแวดล้อมเสมือนเป็นสภาพแวดล้อมแบบ แยก ซึ่งมีทั้งโค้ดและการพึ่งพาสำหรับโครงการ
ข้อดีของสภาพแวดล้อมเสมือนจริง

ตอนนี้คุณได้เรียนรู้ว่าสภาพแวดล้อมเสมือนทำงานอย่างไรใน Python มาแจกแจงข้อดีของการใช้งานกัน:
- สภาพแวดล้อมเสมือนให้สภาพแวดล้อมการ พัฒนาที่แยกได้ สำหรับแต่ละโปรเจ็กต์ ทำให้เราสามารถติดตั้งเฉพาะแพ็คเกจที่จำเป็นสำหรับโปรเจ็กต์เฉพาะ
- เนื่องจากสภาพแวดล้อมเสมือนของโปรเจ็กต์มีทั้งแบบอิสระและแบบแยก โปรเจ็กต์ที่แตกต่างกันจึงสามารถใช้ไลบรารี เดียวกัน ในเวอร์ชัน ต่างๆ กันได้ ขึ้นอยู่กับข้อกำหนด ด้วยสภาพแวดล้อมเสมือน คุณไม่ต้องกังวลเกี่ยวกับสิทธิ์ของระบบเพื่อติดตั้งไลบรารีและตั้งค่าสภาพแวดล้อมการพัฒนา
- เมื่อคุณติดตั้งแพ็คเกจในสภาพแวดล้อมเสมือน คุณสามารถ บันทึกการขึ้นต่อกันของโปรเจ็กต์ ในไฟล์ requirements.txt ซึ่งช่วยให้นักพัฒนารายอื่นสามารถจำลองการพัฒนาและสภาพแวดล้อมของโครงการ และติดตั้งแพ็กเกจที่จำเป็นโดยใช้คำสั่งเดียว
เครื่องมือในการสร้างสภาพแวดล้อมเสมือนจริง

จนถึงตอนนี้ คุณได้เรียนรู้ว่าสภาพแวดล้อมเสมือนจริงทำงานอย่างไรและข้อดีของการใช้งาน มาสำรวจเครื่องมือยอดนิยมที่คุณสามารถใช้เพื่อสร้างและจัดการสภาพแวดล้อมเสมือนใน Python
#1. Virtualenv
Virtualenv เป็นหนึ่งในเครื่องมือที่ใช้กันอย่างแพร่หลายสำหรับการสร้างและจัดการสภาพแวดล้อมเสมือนสำหรับโครงการ Python ชุดย่อยของฟังก์ชันการทำงานของ virtualenv
มีอยู่ในแพ็คเกจ venv อย่างไรก็ตาม แพ็คเกจ virtualenv
นั้นเร็วกว่าและขยายได้เมื่อเทียบกับ venv
#2. Pipenv
ด้วย pipnev คุณมีทั้งฟังก์ชันสภาพแวดล้อมเสมือนของ virtualenv
และความสามารถในการจัดการแพ็คเกจของ pip
มันใช้การจัดการ pipfiles เพื่อจัดการการพึ่งพาโครงการภายในสภาพแวดล้อมเสมือนโดยใช้
คุณสามารถลองใช้ pipenv
จากเบราว์เซอร์บนสนามเด็กเล่น Pipenv นี้
#3. คอนดา
หากคุณใช้การแจกจ่าย Anaconda ของ Python สำหรับการพัฒนา คุณสามารถใช้ conda สำหรับการจัดการแพ็คเกจและสำหรับการสร้างสภาพแวดล้อมเสมือน
หากต้องการเรียนรู้เพิ่มเติม โปรดดูคู่มือที่ครอบคลุมเกี่ยวกับการจัดการสภาพแวดล้อมด้วย conda

#4. กวีนิพนธ์
Poetry เป็นเครื่องมือจัดการแพ็คเกจที่ให้คุณจัดการการพึ่งพาในโครงการ Python ทั้งหมด ในการเริ่มใช้ Poetry คุณต้องติดตั้ง Python 3.7 หรือเวอร์ชันที่ใหม่กว่า
#5. Venv
ดังที่กล่าวไว้ venv เสนอชุดย่อยของฟังก์ชันการทำงานของ virtualenv แต่มาพร้อมกับข้อได้เปรียบที่รวมอยู่ในไลบรารีมาตรฐาน Python โดยเริ่มจาก Python 3.3
พร้อมใช้งานในการติดตั้ง Python และไม่ต้องติดตั้งแพ็คเกจภายนอก เราจะใช้ในบทช่วยสอนนี้เพื่อสร้างและทำงานกับสภาพแวดล้อมเสมือน
วิธีสร้าง Python Virtual Environment ใน Ubuntu
หากต้องการติดตามส่วนที่เหลือของบทช่วยสอนนี้ คุณต้องมีการติดตั้ง Python 3 ในเครื่อง ตรวจสอบให้แน่ใจว่าคุณใช้ Python 3.5 หรือเวอร์ชันที่ใหม่กว่า
ส่วนนี้สรุปขั้นตอนในการสร้างและเปิดใช้งานสภาพแวดล้อมเสมือนในเครื่อง Ubuntu Linux ขั้นตอนเดียวกันนี้สามารถใช้กับ distros Linux อื่น ๆ ได้เช่นกัน
เพื่อการจัดการที่ง่ายขึ้น ให้สร้างไดเร็กทอรีโปรเจ็กต์และ cd
ลงไป เราจะสร้าง venv
ภายในไดเร็กทอรีนี้
$ mkdir my_project $ cd my_project
ไวยากรณ์ทั่วไปในการสร้างสภาพแวดล้อมเสมือนสำหรับโครงการ Python ของคุณคือ python3 -m venv <venv-name-or-path>
เมื่อรันคำสั่งนี้ สภาพแวดล้อมเสมือนที่เรียกว่า my_env
จะถูกสร้างขึ้นในไดเร็กทอรีการทำงานปัจจุบัน:
$ python3 -m venv my_env
วิธีเปิดใช้งานและติดตั้งแพ็คเกจภายในสภาพแวดล้อมเสมือน
หลังจากที่คุณสร้างสภาพแวดล้อมเสมือนแล้ว คุณสามารถเปิดใช้งานและติดตั้งแพ็คเกจที่จำเป็นได้ ในการเปิดใช้งานสภาพแวดล้อมเสมือน คุณสามารถเรียกใช้คำสั่งต่อไปนี้:
$ source my_env/bin/activate
เมื่อคุณเปิดใช้งานสภาพแวดล้อมเสมือนแล้ว คุณสามารถเรียกใช้คำสั่ง pip list
เพื่อรับรายการแพ็คเกจที่ติดตั้ง:
$ pip list

จนถึงตอนนี้ เรายังไม่ได้ติดตั้งแพ็คเกจใดๆ ดังนั้นคุณควรจะเห็น setuptools
และ pip
ที่ติดตั้งโดยค่าเริ่มต้น ในแต่ละสภาพแวดล้อมเสมือนที่สร้างขึ้น
การติดตั้ง pip
ภายในสภาพแวดล้อมเสมือนช่วยให้คุณติดตั้งแพ็คเกจที่จำเป็นสำหรับโครงการเฉพาะ นี่คือเหตุผลที่คุณมี สภาพแวดล้อมการพัฒนาที่เป็นอิสระ สำหรับแต่ละโครงการ
เมื่อคุณเปิดใช้งานสภาพแวดล้อมเสมือนแล้ว คุณสามารถติดตั้งแพ็คเกจเฉพาะโปรเจ็กต์ในนั้นได้โดยใช้ pip ตัวอย่างเช่น ให้เราติดตั้งคำขอ Python ซึ่งเป็นหนึ่งในแพ็คเกจ Python ที่ดาวน์โหลดมากที่สุด ซึ่งมีคุณสมบัติที่มีประโยชน์หลายอย่างในการส่งคำขอ HTTP สำหรับการทำงานกับเว็บ API
$ pip install requests
เมื่อคุณติดตั้งไลบรารีคำร้องขอ คุณจะเห็นว่าไลบรารีคำร้องขอได้รับการติดตั้งพร้อมกับแพ็กเกจทั้งหมดที่จำเป็น

$ pip list

คุณสามารถใช้คำสั่ง pip freeze
และเปลี่ยนเส้นทางเอาต์พุตไปยังไฟล์ requirements.txt ดังที่แสดง:
$ pip freeze > requirements.txt
หากคุณตรวจสอบเนื้อหาของไดเร็กทอรีโปรเจ็กต์ปัจจุบัน คุณจะเห็นว่าไฟล์ข้อกำหนด.txt ถูกสร้างขึ้นแล้ว
$ ls # my_env requirements.txt
คุณสามารถปิดใช้งานสภาพแวดล้อมเสมือนได้หลังจากที่คุณทำงานในโครงการโดยเรียกใช้คำสั่งต่อไปนี้:
$ deactivate
วิธีสร้าง Python Virtual Environment ใน Windows
โดยทั่วไป สภาพแวดล้อม Linux เป็นที่ต้องการสำหรับการพัฒนา หากคุณใช้เครื่อง Windows คุณสามารถลองใช้ระบบย่อย Windows สำหรับ Linux (WSL) เพื่อตั้งค่าสภาพแวดล้อมเทอร์มินัล Ubuntu สำหรับการพัฒนาในพื้นที่
หากคุณใช้เครื่อง Windows คุณสามารถใช้ Windows PowerShell หรือ Command Prompt และสร้างสภาพแวดล้อมเสมือนโดยใช้คำสั่งต่อไปนี้:
> python -m venv <path-to-venv>
วิธีเปิดใช้งานสภาพแวดล้อมเสมือน
การเปิดใช้งานสภาพแวดล้อมเสมือนบนเครื่อง Windows จะแตกต่างกันไปขึ้นอยู่กับว่าคุณกำลังใช้งานพรอมต์คำสั่งหรือ Windows PowerShell
หากคุณอยู่บนพรอมต์คำสั่ง ให้เรียกใช้คำสั่งต่อไปนี้เพื่อเปิดใช้งานสภาพแวดล้อมเสมือน:
> <path-to-venv>\Scripts\activate.bat
หรือหากคุณใช้ Windows PowerShell การเรียกใช้คำสั่งนี้จะเปิดใช้งานสภาพแวดล้อมเสมือน:
> <path-to-venv>\Scripts\Activate.ps1
คุณสามารถติดตั้งแพ็คเกจที่จำเป็นทั้งหมดภายในสภาพแวดล้อมเสมือน
หากต้องการปิดใช้งานสภาพแวดล้อมเสมือน คุณสามารถเรียกใช้คำสั่ง deactivate
ได้ทั้งบนพรอมต์คำสั่งและ Windows PowerShell
บทสรุป
ในบทความนี้ เราได้พูดถึงข้อจำกัดของการติดตั้งทั้งระบบและวิธีที่ทำให้การจัดการการพึ่งพาในโครงการ Python นั้นทำได้ยาก สภาพแวดล้อมเสมือน ใน Python มีวิธีการจัดการการพึ่งพาที่ดีขึ้นในขณะที่ให้สภาพแวดล้อมการพัฒนาแบบแยกสำหรับแต่ละโครงการ
ในบรรดาเครื่องมือที่ใช้กันอย่างแพร่หลายสำหรับการสร้างและจัดการสภาพแวดล้อมเสมือนใน Python คุณได้เรียนรู้วิธีใช้ venv ซึ่งสร้างไว้ในไลบรารีมาตรฐาน Python เพื่อสร้างและเปิดใช้งานสภาพแวดล้อมเสมือน
ภายในสภาพแวดล้อมเสมือนเฉพาะของโปรเจ็กต์ สามารถติดตั้งเวอร์ชันของไลบรารีเฉพาะสำหรับโปรเจ็กต์ได้ ความต้องการเหล่านี้สามารถบันทึกไว้ในไฟล์ requirements.txt ซึ่งช่วยให้นักพัฒนารายอื่นสามารถจำลองสภาพแวดล้อมของโครงการได้อย่างง่ายดาย
เมื่อคุณเริ่มโครงการ Python ถัดไป อย่าลืมใช้สภาพแวดล้อมเสมือนเพื่อการจัดการการพึ่งพาที่ดีขึ้น มีความสุขในการเข้ารหัส!