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

การตั้งค่า Virtual Environment
เพื่อเริ่มต้นโปรเจกต์ ควรมี Virtual Environment ไว้ก่อน Virtual Environment ช่วยให้เราสร้างสภาพแวดล้อมที่แยกออกจากกัน (isolated environment) ซึ่งจะช่วยหลีกเลี่ยงความขัดแย้งของ dependencies ข้ามโปรเจกต์ ถ้าพิมพ์ pip freeze ในเทอร์มินัล จะเห็น packages ทั้งหมดที่ติดตั้งอยู่บนเครื่อง แต่ถ้าใช้ virtualenv เราจะเข้าถึงเฉพาะ packages ที่จำเป็นสำหรับโปรเจกต์นั้นเท่านั้น เปิดเทอร์มินัลแล้วติดตั้ง virtualenv:
asabeneh@Asabeneh:~$ pip install virtualenvภายใน folder 30DaysOfPython ให้สร้าง folder ชื่อ flask_project
หลังจากติดตั้ง package virtualenv แล้ว ให้ไปที่ folder โปรเจกต์ แล้วสร้าง virtual environment โดยพิมพ์คำสั่งต่อไปนี้:
สำหรับ Mac/Linux:
asabeneh@Asabeneh:~/Desktop/30DaysOfPython/flask_project$ virtualenv venvสำหรับ Windows:
C:\Users\User\Documents\30DaysOfPython\flask_project>python -m venv venvเรียกโปรเจกต์ใหม่ว่า venv แต่สามารถตั้งชื่ออื่นได้ตามต้องการ ลองตรวจสอบว่า venv ถูกสร้างขึ้นมาแล้วหรือไม่ โดยใช้คำสั่ง ls (หรือ dir สำหรับ Windows command prompt):
asabeneh@Asabeneh:~/Desktop/30DaysOfPython/flask_project$ ls
venv/เปิดใช้งาน Virtual Environment โดยพิมพ์คำสั่งต่อไปนี้ใน folder โปรเจกต์:
สำหรับ Mac/Linux:
asabeneh@Asabeneh:~/Desktop/30DaysOfPython/flask_project$ source venv/bin/activateการ Activate Virtual Environment บน Windows อาจแตกต่างกันระหว่าง Windows Power Shell และ git bash
สำหรับ Windows Power Shell:
C:\Users\User\Documents\30DaysOfPython\flask_project> venv\Scripts\activateสำหรับ Windows Git bash:
C:\Users\User\Documents\30DaysOfPython\flask_project> venv\Scripts\. activateหลังจากพิมพ์คำสั่ง activate แล้ว directory ของโปรเจกต์จะขึ้นต้นด้วย venv ดังตัวอย่างด้านล่าง:
(venv) asabeneh@Asabeneh:~/Desktop/30DaysOfPython/flask_project$ตอนนี้ให้ลองตรวจสอบ packages ที่มีอยู่ในโปรเจกต์นี้โดยพิมพ์ pip freeze จะไม่เห็น packages ใดๆ เลย
เราจะทำโปรเจกต์ flask เล็กๆ ดังนั้นให้ติดตั้ง package flask ลงในโปรเจกต์นี้:
(venv) asabeneh@Asabeneh:~/Desktop/30DaysOfPython/flask_project$ pip install Flaskตอนนี้ลองพิมพ์ pip freeze เพื่อดูรายการ packages ที่ติดตั้งในโปรเจกต์:
(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:
(venv) asabeneh@Asabeneh:~/Desktop/30DaysOfPython$ deactivateโมดูลที่จำเป็นสำหรับการทำงานกับ flask ถูกติดตั้งแล้ว ตอนนี้ directory โปรเจกต์ของคุณพร้อมสำหรับ flask project แล้ว ควรเพิ่ม venv ลงใน .gitignore เพื่อไม่ให้ push ขึ้น GitHub
💻 แบบฝึกหัด: วันที่ 23
- สร้าง project directory พร้อม virtual environment ตามตัวอย่างที่ให้ไว้ข้างต้น