Sử dụng virtualenv để setup project Python

Mỗi project Python sẽ cần sử dụng nhiều lib khác nhau. Khi bạn phải chạy nhiều project python trên cùng máy tính thì xung đột có thể xảy ra. Ví dụ project A sử dụng thư viện OpenCV 2.x.x nhưng project B sử dụng thư viện OpenCV 3.x.x chẳng hạn. Khi đó dùng VirtualEnv sẽ giúp bạn tránh xung đột bằng cách cài lib vào thư mục riêng.

Việc sử dụng VirtualEnv cực kỳ đơn giản mà lợi ích rất lớn. Rất cần thiết cho lập trình viên/sinh viên nghiên cứu các project Python.

Nguyên lý

Hiểu đơn giản như sau: nếu không sử dụng VirtualEnv thì các lib sẽ nằm trong folder cài đặt Python. Khi sử dụng VirtualEnv thì bạn tạo các folder riêng để chứa lib để chúng không ảnh hưởng nhau.

virtualenv

Cụ thể là folder mặc định khi cài lib Python trên máy mình là: C:\Users\vohungvi\AppData\Local\Programs\Python\Python36\Lib\site-packages. Khi sử dụng VirtualEnv thì lib sẽ được cài đặt vào folder mà mình chỉ định. Do đó bạn nên tạo folder nằm trong project là tốt nhất.

Cách sử dụng

Mình giả sử trường hợp sử dụng là có 2 project: D:\FaceDetection và D:\CarCounting. FaceDetection sử dụng opencv-python 3.0.0 còn CarCounting sử dụng opencv-python 2.0.0

Đầu tiên là cài đặt VirtualEnv:
pip install virtualenv

Với mỗi project, bạn nên tạo folder riêng chứa các lib chỉ sử dụng cho project đó. Mình tạo 1 folder tên là venv nằm trong project (bạn có thể đặt tên folder nào tùy ý):
cd D:\FaceDetection
virtualenv venv

Vậy là bạn đã tạo được folder venv nằm trong project FaceDetection. Khi muốn sử dụng thì bạn gọi:
venv\Scripts\activate
Khi gọi xong dấu nhắc sẽ có chữ (venv) ở đầu, có nghĩa là mọi cài đặt sẽ chỉ ảnh hưởng tới folder venv.
venv

Không muốn sử dụng nữa thì gọi
venv\Scripts\deactivate

Tổng kết

Do lợi ích của VirtualEnv nên đề nghị sử dụng VirtualEnv khi bạn là người tìm hiểu nhiều thư viện khác nhau.

Leave a Reply