Windows 10 Python Virtual Environment

Supphachoke Suntiwichaya
NECTEC
Published in
3 min readDec 28, 2020

แอบเล่น Python บน Windows 10 บันทึกไว้สักหน่อย

ผมใช้ PowerShell นะครับ ซึ่งปกติน่าจะถูกปิดการใช้งาน Script ไว้เพื่อความปลอดภัย ถ้าจะใช้ Python venv แบบไม่ต้องลงตัวช่วยก็ให้เปิดเสียก่อน โดยการเปิด PowerShell ในสิทธิของ Administrator แล้วสั่งคำสั่ง

set-executionpolicy RemoteSigned

เพื่อความปลอดภัยให้ศึกษาเพิ่มเติมได้ที่

เมื่อเปิดการใช้งาน Script เสร็จแล้วก็ให้เปิด PowerShell ในสิทธิปกติแล้วสร้าง Director สำหรับ Project

mkdir python

เข้าไปยัง Directory ที่สร้างแล้วทำการสร้าง Virtual Environment

python -m venv env

เราจะเก็บ modules ต่างๆ ใน directory ชื่อ env แต่ก่อนอื่นต้องทำการ activate Environment นี้เสียก่อน

.\env\Scripts\Activate.ps1

ให้สังเกต (env) ข้างหน้า Command Prompt ถ้าสั่งสำเร็จ ซึ่งใน () นี้จะเป็นชื่อของ Directory ที่เราสร้าง Environment ไว้นั่นเอง

ตอนนี้เราก็สามารถใช้งาน python ในสภาพแวดล้อมที่สร้างขึ้นมาได้แล้ว ลองตรวจสอบว่า python ชี้ไปถูกต้องหรือไม่

Get-Command python

ตอนนี้สามารถติดตั้ง package ต่างๆ ด้วยคำสั่ง pip ได้ตามต้องการ เช่น

pip install -U pip

เป็นการ upgrade pip

หรือจะติดตั้ง opencv

pip install opencv-python

ณ วันที่ผมเขียน OpenCV ตัวล่าสุดจะมีปัญหากับ numpy ตัวล่าสุดวิธีแก้ปัญหาคือให้ drop numpy ลงไป version หนึ่ง

pip install numpy==1.19.3

VSCode

ถ้าจะใช้ VSCode เขียน Script ก็เรียกใช้งานได้เลย

code .

เมื่อเราสร้าง file ที่มีนามสกุล py vscode ก็จะถามเราว่าจะติดตั้ง extension python หรือไม่ก็ติดตั้งไปครับ

เมื่อติดตั้งเสร็จจะมีให้เลือก python version ตรงมุมล่างซ้าย

Click แล้วเลือกไปยัง env ที่เราสร้างไว้

หลังจากนี้ VSCode อาจจะถามให้ติดตั้ง Extension อื่นๆ อีก เช่น Linter ก็ให้ติดตั้งไป

หรือถ้าจะใช้ VSCode run Notebook ก็สามารถทำได้เช่นกัน โดยการ Click ขวาที่ชื่อ file แล้วเลือก

มีอีกตัวก็ Pylance ที่ควรมีไว้สำหรับช่วยในการเขียน

หลักๆ ก็ประมาณนี้เท่าที่นึกออก การใช้ Virtual Environment จะว่ายากก็ยากจะว่าง่ายก็ง่าย ถ้าไม่มีอะไรซับซ้อนวิธีนี้จะกระชับไม่ต้องลงอะไรเพิ่มเติม แต่ถ้ามี dependency ที่ต้องมีการ compile ใหม่วิธีนี้อาจจะเหนื่อยหน่อยก็ใช้ anaconda ช่วยเอา

--

--