0Pricing
Python Academy · บทเรียน

เหตุผลที่สภาพแวดล้อมเสมือนสำคัญ

ทำความเข้าใจความขัดแย้งของการพึ่งพาและเหตุผลที่การแยกสภาพแวดล้อมเป็นสิ่งจำเป็น

เหตุผลที่สภาพแวดล้อมเสมือนสำคัญ เป็นบทเรียน Python Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Python Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน

บทนำ

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

ปัญหาการติดตั้งแบบรวมทั้งระบบ

โดยค่าเริ่มต้น pip จะติดตั้งลงใน Python ของระบบ โปรเจกต์ A ต้องใช้ requests 2.25 ส่วนโปรเจกต์ B ต้องใช้ 2.28 — จึงเกิดข้อขัดแย้ง
# Without venv:
# pip install requests==2.25  -> global
# pip install requests==2.28  -> overwrites 2.25!
print('global conflict demo')

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

venv คือการติดตั้ง Python ที่แยกออกจากกันในไดเรกทอรี แต่ละโปรเจกต์มีแพ็กเกจของตนเองโดยไม่ขึ้นต่อโปรเจกต์อื่น
# venv creates:
# project/
#   .venv/
#     bin/python     (isolated Python)
#     lib/site-packages/  (project packages)
print('venv structure')

การทำซ้ำผลลัพธ์ได้

เมื่อใช้ venv ร่วมกับ requirements.txt ทุกคนสามารถสร้างสภาพแวดล้อมเดียวกันได้อย่างแม่นยำ: pip install -r requirements.txt
# pip freeze > requirements.txt
# # Later, on another machine:
# python -m venv .venv
# pip install -r requirements.txt
print('reproducible env')

การแยกเพื่อความปลอดภัย

การติดตั้งแพ็กเกจใน venv จะไม่ส่งผลต่อ Python ของระบบ ไม่ต้องใช้ sudo หรือสิทธิ์ผู้ดูแลระบบ และไม่มีความเสี่ยงที่จะทำให้เครื่องมือของระบบเสียหาย
# System Python is untouched:
# /usr/bin/python -> system packages
# .venv/bin/python -> project packages only
print('security isolation')

CI/CD และ Docker

ใน CI/CD และคอนเทนเนอร์ ให้สร้าง venv ใหม่สำหรับแต่ละการสร้าง เพื่อให้แน่ใจว่าได้สภาพแวดล้อมที่สะอาดและสร้างซ้ำได้
# Dockerfile pattern:
# RUN python -m venv /opt/venv
# RUN /opt/venv/bin/pip install -r requirements.txt
print('ci/cd demo')

หนึ่ง Venv ต่อหนึ่งโปรเจกต์

ใช้ venv หนึ่งชุดต่อหนึ่งโปรเจกต์ โดยเก็บไว้ใน .venv/ ภายในรากของโปรเจกต์ อย่าบันทึกลงระบบควบคุมเวอร์ชัน
# Add to .gitignore:
# .venv/
# __pycache__/
print('gitignore tip')

Site-Packages ของระบบ ผู้ใช้ และ venv

Python จะค้นหาแพ็กเกจตามลำดับ: site-packages ของ venv → site ของผู้ใช้ → site ระดับระบบ เมื่อเปิดใช้งาน venv จะมีลำดับความสำคัญสูงสุด
import sys
print('\n'.join(p for p in sys.path if 'site' in p))

pyenv สำหรับจัดการเวอร์ชัน Python

pyenv จัดการ Python หลายเวอร์ชัน เช่น 3.10, 3.11 และ 3.12 ใช้ร่วมกับ venv เพื่อการแยกอย่างสมบูรณ์
# pyenv install 3.12.0
# pyenv local 3.12.0
# python -m venv .venv
print('pyenv demo')

conda เป็นทางเลือก

conda (Anaconda/Miniconda) จัดการทั้งแพ็กเกจและเวอร์ชัน Python เป็นที่นิยมในงานวิทยาศาสตร์ข้อมูล
# conda create -n myenv python=3.11
# conda activate myenv
# conda install numpy pandas
print('conda demo')

สรุปแนวทางปฏิบัติที่ดี

ทำงานใน venv เสมอ ใช้ requirements.txt หรือ pyproject.toml เพิ่ม .venv/ ลงใน .gitignore และใช้เวอร์ชัน Python อย่างสม่ำเสมอ
import sys
print('Python:', sys.version)
print('venv:', sys.prefix != sys.base_prefix)

ตรวจสอบอย่างรวดเร็ว

ปัญหาหลักที่สภาพแวดล้อมเสมือนช่วยแก้คืออะไร

สรุปทบทวน

สภาพแวดล้อมเสมือน: แยกตามโปรเจกต์ venv แต่ละชุดมีแพ็กเกจของตนเอง ใช้ requirements.txt เพื่อให้สร้างซ้ำได้ เพิ่ม .venv/ ลงใน .gitignore

เดินหน้าต่อ

ทำได้ดีครับ โปรดไปยังบทเรียนถัดไป

คำถามที่พบบ่อย

บทเรียน “เหตุผลที่สภาพแวดล้อมเสมือนสำคัญ” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “เหตุผลที่สภาพแวดล้อมเสมือนสำคัญ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Python Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “เหตุผลที่สภาพแวดล้อมเสมือนสำคัญ”

ทำความเข้าใจความขัดแย้งของการพึ่งพาและเหตุผลที่การแยกสภาพแวดล้อมเป็นสิ่งจำเป็น คุณปฏิบัติ Python Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Python Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Python Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “เหตุผลที่สภาพแวดล้อมเสมือนสำคัญ” ใช้เวลานานแค่ไหน

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

ฉันเขียนและรันโค้ดในบทเรียน Python Academy นี้ได้ไหม

ได้ บทเรียน Python Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. เหตุผลที่สภาพแวดล้อมเสมือนสำคัญ
  2. การสร้างและเปิดใช้งาน venv
  3. การจัดการการพึ่งพาด้วย pip
  4. เครื่องมือสมัยใหม่: pipenv และ uv
← กลับไปที่ Python Academy