Virtual Environment khi lập trình Python
Khác với gói npm trong Node.js cho phép ta quản lý gói cho từng dự án một thì Python lại không có khả năng này. Việc này sẽ gây rắc rối nếu các dự án khác nhau yêu cầu các gói thư viện khác version nhau. Ngoài ra, đôi lúc ta cũng chẳng muốn cài các gói vào môi trường global làm gì cả mà chỉ muốn cài vào local sài xong là xoá đi luôn.
Virtual Environment cho phép bạn tùy biến việc sử dụng các thư viện cần thiết theo đúng phiên bản mà bạn muốn cho từng project, bạn có thể cùng lúc chạy 2 project với phiên bản Django khác nhau mà không làm ảnh hưởng lẫn nhau.
Cho phép bạn làm việc trong một môi trường ảo mà không bị ảnh hưởng bởi những thư viện phần mềm, gói cài đặt mà bạn đã cài trên toàn hệ thống. Trong Python, môi trường ảo được sử dụng để cô lập môi trường của các dự án với nhau.
Tạo môi trường:
python -m venv
<tên folder chứa thông tin Virtual Environment cho dự án của bạn>
hoặc py -3 -m venv venv
Bạn có thể đặt tên venv ở các project khác nhau.
Activate môi trường vừa tạo trên Windows:
> python -m venv venv
> venv\Scripts\activate
Đối với Linux:
$ python -m venv venv
$ source venv/bin/activate
Bây giờ bạn muốn bê nguyên dự án bạn đang làm sang máy khác, cách đơn giản nhất là sử dụng pip để freeze lại các gói cài sau đó cài đặt lại.
$ pip freeze > requirements.txt
Trên máy mới hoặc project folder mới:
$ pip install -r requirements.txt
Các công cụ tạo và quản lý Virtual Environment sẽ thêm và sử dụng 1 folder trong dự án của bạn để quản lý các gói cài đặt cũng như phiên bản Python (./venv như trong ví dụ trên), bạn không cần thiết phải quan tâm tới folder này, hãy nhớ đưa folder này vào .gitignore file trong trường hợp bạn sử dụng git.
Để kiểm tra, ta có thể chạy lệnh:
$ python --version
Python 3.8.2
$ pip --version
Việc xuất gói để đồng bộ môi trường với những thành viên khác trong đội dự án cũng được thực hiện tương tự như môi trường thật:
pip freeze -l > requirements.txt
Đương nhiên là việc cài đặt theo danh sách gói này cũng thế:
pip install -r requirements.txt
Để hủy kích hoạt môi trường, bạn cần gõ lệnh deactivate.
Nhận xét
Đăng nhận xét