Notes & software courses · Free to learn
Aph's Blog
On this page

วันที่ 23 — Virtual Environment

👋 อ่านฟรีทั้งหมดบน Aph's Blog — เนื้อหาภาษาไทย ทำตามทีละหน้าใน sidebar ได้เลย หากมีข้อเสนอแนะหรืออยากให้เพิ่มหัวข้อไหน บอกได้เสมอ

เรียนรู้การสร้าง Virtual Environment เพื่อแยก dependencies ของแต่ละโปรเจกต์ Python ออกจากกัน ป้องกันปัญหา version conflict

30 Days of Python banner
30 Days of Python

การตั้งค่า Virtual Environment

เพื่อเริ่มต้นโปรเจกต์ ควรมี Virtual Environment ไว้ก่อน Virtual Environment ช่วยให้เราสร้างสภาพแวดล้อมที่แยกออกจากกัน (isolated environment) ซึ่งจะช่วยหลีกเลี่ยงความขัดแย้งของ dependencies ข้ามโปรเจกต์ ถ้าพิมพ์ pip freeze ในเทอร์มินัล จะเห็น packages ทั้งหมดที่ติดตั้งอยู่บนเครื่อง แต่ถ้าใช้ virtualenv เราจะเข้าถึงเฉพาะ packages ที่จำเป็นสำหรับโปรเจกต์นั้นเท่านั้น เปิดเทอร์มินัลแล้วติดตั้ง virtualenv:

shell
asabeneh@Asabeneh:~$ pip install virtualenv

ภายใน folder 30DaysOfPython ให้สร้าง folder ชื่อ flask_project

หลังจากติดตั้ง package virtualenv แล้ว ให้ไปที่ folder โปรเจกต์ แล้วสร้าง virtual environment โดยพิมพ์คำสั่งต่อไปนี้:

สำหรับ Mac/Linux:

shell
asabeneh@Asabeneh:~/Desktop/30DaysOfPython/flask_project$ virtualenv venv

สำหรับ Windows:

shell
C:\Users\User\Documents\30DaysOfPython\flask_project>python -m venv venv

เรียกโปรเจกต์ใหม่ว่า venv แต่สามารถตั้งชื่ออื่นได้ตามต้องการ ลองตรวจสอบว่า venv ถูกสร้างขึ้นมาแล้วหรือไม่ โดยใช้คำสั่ง ls (หรือ dir สำหรับ Windows command prompt):

shell
asabeneh@Asabeneh:~/Desktop/30DaysOfPython/flask_project$ ls
venv/

เปิดใช้งาน Virtual Environment โดยพิมพ์คำสั่งต่อไปนี้ใน folder โปรเจกต์:

สำหรับ Mac/Linux:

shell
asabeneh@Asabeneh:~/Desktop/30DaysOfPython/flask_project$ source venv/bin/activate

การ Activate Virtual Environment บน Windows อาจแตกต่างกันระหว่าง Windows Power Shell และ git bash

สำหรับ Windows Power Shell:

shell
C:\Users\User\Documents\30DaysOfPython\flask_project> venv\Scripts\activate

สำหรับ Windows Git bash:

shell
C:\Users\User\Documents\30DaysOfPython\flask_project> venv\Scripts\. activate

หลังจากพิมพ์คำสั่ง activate แล้ว directory ของโปรเจกต์จะขึ้นต้นด้วย venv ดังตัวอย่างด้านล่าง:

shell
(venv) asabeneh@Asabeneh:~/Desktop/30DaysOfPython/flask_project$

ตอนนี้ให้ลองตรวจสอบ packages ที่มีอยู่ในโปรเจกต์นี้โดยพิมพ์ pip freeze จะไม่เห็น packages ใดๆ เลย

เราจะทำโปรเจกต์ flask เล็กๆ ดังนั้นให้ติดตั้ง package flask ลงในโปรเจกต์นี้:

shell
(venv) asabeneh@Asabeneh:~/Desktop/30DaysOfPython/flask_project$ pip install Flask

ตอนนี้ลองพิมพ์ pip freeze เพื่อดูรายการ packages ที่ติดตั้งในโปรเจกต์:

shell
(venv) asabeneh@Asabeneh:~/Desktop/30DaysOfPython/flask_project$ pip freeze
Click==7.0
Flask==1.1.1
itsdangerous==1.1.0
Jinja2==2.10.3
MarkupSafe==1.1.1
Werkzeug==0.16.0

เมื่อทำงานเสร็จแล้ว ควร deactivate โปรเจกต์ที่ active อยู่โดยใช้คำสั่ง deactivate:

shell
(venv) asabeneh@Asabeneh:~/Desktop/30DaysOfPython$ deactivate

โมดูลที่จำเป็นสำหรับการทำงานกับ flask ถูกติดตั้งแล้ว ตอนนี้ directory โปรเจกต์ของคุณพร้อมสำหรับ flask project แล้ว ควรเพิ่ม venv ลงใน .gitignore เพื่อไม่ให้ push ขึ้น GitHub

💻 แบบฝึกหัด: วันที่ 23

  1. สร้าง project directory พร้อม virtual environment ตามตัวอย่างที่ให้ไว้ข้างต้น