เริ่มต้นใช้งาน Virtual Environments ใน Python

เผยแพร่แล้ว: 2022-11-07

ในบทความนี้ คุณจะได้เรียนรู้วิธีเริ่มต้นใช้งานสภาพแวดล้อมเสมือนใน Python ทั้งในระบบปฏิบัติการ Windows และ Linux

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

เพื่อใช้ประโยชน์จากสภาพแวดล้อมเสมือนใน Python มาเรียนรู้การสร้างและเปิดใช้งานสภาพแวดล้อมเสมือนกันเถอะ

สภาพแวดล้อมเสมือนจริงคืออะไร?

สภาพแวดล้อมเสมือนเป็นสภาพแวดล้อม ที่แยกจากกันและเป็นอิสระที่มีโค้ดและการขึ้นต่อกันของโปรเจ็กต์

แต่ทำไมคุณจึงควรใช้สภาพแวดล้อมเสมือน

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

การติดตั้งแพ็คเกจใน Python

ไลบรารีมาตรฐานของ Python มาพร้อมกับโมดูลที่มีประโยชน์มากมายสำหรับการทดสอบหน่วย การโต้ตอบกับระบบปฏิบัติการ การทำงานกับวันที่และเวลา และอื่นๆ

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

ในการติดตั้งและจัดการแพ็คเกจเหล่านี้ คุณสามารถใช้ conda หรือ pip

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

local-dev-env

เหตุใดจึงเป็นปัญหา

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

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

จะเกิดอะไรขึ้นกับการติดตั้งที่มีอยู่

มันถูกลบและแทนที่ด้วยเวอร์ชันของ Django ที่คุณติดตั้ง ฟีเจอร์บางอย่างอาจเลิกใช้แล้วสำหรับเวอร์ชันที่เสถียรที่ใหม่กว่า และโครงการ Django ก่อนหน้าของคุณอาจไม่ทำงานตามที่คาดไว้

version-diff

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

สภาพแวดล้อมเสมือนจริงทำงานอย่างไร

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

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

python-virtual-environments

ทบทวนตัวอย่างโปรเจ็กต์ 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
ภาพ-3

จนถึงตอนนี้ เรายังไม่ได้ติดตั้งแพ็คเกจใดๆ ดังนั้นคุณควรจะเห็น setuptools และ pip ​​ที่ติดตั้งโดยค่าเริ่มต้น ในแต่ละสภาพแวดล้อมเสมือนที่สร้างขึ้น

การติดตั้ง pip ภายในสภาพแวดล้อมเสมือนช่วยให้คุณติดตั้งแพ็คเกจที่จำเป็นสำหรับโครงการเฉพาะ นี่คือเหตุผลที่คุณมี สภาพแวดล้อมการพัฒนาที่เป็นอิสระ สำหรับแต่ละโครงการ

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

 $ pip install requests

เมื่อคุณติดตั้งไลบรารีคำร้องขอ คุณจะเห็นว่าไลบรารีคำร้องขอได้รับการติดตั้งพร้อมกับแพ็กเกจทั้งหมดที่จำเป็น

install-libraries-in-python-virtual-environment
 $ pip list
view-libraries-in-python-virtual-environment

คุณสามารถใช้คำสั่ง 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 ถัดไป อย่าลืมใช้สภาพแวดล้อมเสมือนเพื่อการจัดการการพึ่งพาที่ดีขึ้น มีความสุขในการเข้ารหัส!