Môi trường ảo Python tạo ra một cài đặt ảo của Python bên trong thư mục dự án. Người dùng có thể cài đặt và quản lý các gói Python cho mỗi dự án. Điều này cho phép người dùng cài đặt các gói và chỉnh sửa môi trường Python của họ mà không lo lắng về việc làm hỏng các gói đã được cài đặt trong các môi trường khác.
Môi trường ảo Python là:
Khi bạn cài đặt phần mềm Python trên máy tính của mình, nó có sẵn để sử dụng từ bất kỳ đâu trong hệ thống tệp. Đây là một cài đặt toàn hệ thống.
Trong quá trình phát triển một ứng dụng bằng Python, có thể cần phải cài đặt một hoặc nhiều thư viện bằng cách sử dụng công cụ pip (ví dụ, pip3 install somelib ). Hơn nữa, một ứng dụng (giả sử là App1) có thể yêu cầu một phiên bản cụ thể của thư viện - chẳng hạn như somelib 1.0 . Đồng thời, một ứng dụng Python khác (chẳng hạn như App2) có thể yêu cầu phiên bản mới hơn của cùng một thư viện, ví dụ somelib 2.0 . Do đó, việc cài đặt một phiên bản mới có thể làm ảnh hưởng đến chức năng của App1 do xung đột giữa hai phiên bản khác nhau của cùng một thư viện.
Xung đột này có thể được tránh bằng cách cung cấp hai môi trường Python tách biệt trên cùng một máy. Những môi trường này được gọi là môi trường ảo. Một môi trường ảo là một cấu trúc thư mục riêng biệt chứa các cài đặt tách biệt có một bản sao cục bộ của trình thông dịch Python, thư viện chuẩn và các mô-đun khác.
Hình dưới đây cho thấy mục đích của việc sử dụng môi trường ảo. Bằng cách sử dụng cài đặt Python toàn cầu, nhiều môi trường ảo được tạo ra, mỗi môi trường có phiên bản khác nhau của cùng một thư viện, nhằm tránh xung đột.
Chức năng này được hỗ trợ bởi mô-đun venv trong phân phối Python tiêu chuẩn. Sử dụng các lệnh sau để tạo một môi trường ảo mới.
C:\Users\Acer>md\pythonapp C:\Users\Acer>cd\pythonapp C:\pythonapp>python -m venv myvenv
Ở đây, myvenv là thư mục trong đó một môi trường ảo Python mới sẽ được tạo với cấu trúc thư mục như sau −
Directory of C:\pythonapp\myvenv 22-02-2023 09:53 <DIR> . 22-02-2023 09:53 <DIR> .. 22-02-2023 09:53 <DIR> Include 22-02-2023 09:53 <DIR> Lib 22-02-2023 09:53 77 pyvenv.cfg 22-02-2023 09:53 <DIR> Scripts
Các tiện ích để kích hoạt và hủy kích hoạt môi trường ảo cũng như bản sao cục bộ của trình thông dịch Python sẽ được đặt trong thư mục scripts.
Directory of C:\pythonapp\myvenv\scripts 22-02-2023 09:53 <DIR> . 22-02-2023 09:53 <DIR> .. 22-02-2023 09:53 2,063 activate 22-02-2023 09:53 992 activate.bat 22-02-2023 09:53 19,611 Activate.ps1 22-02-2023 09:53 393 deactivate.bat 22-02-2023 09:53 106,349 pip.exe 22-02-2023 09:53 106,349 pip3.10.exe 22-02-2023 09:53 106,349 pip3.exe 22-02-2023 09:53 242,408 python.exe 22-02-2023 09:53 232,688 pythonw.exe
Để kích hoạt môi trường ảo mới này, hãy thực hiện activate.bat trong thư mục Scripts.
C:\pythonapp>myvenv\scripts\activate (myvenv) C:\pythonapp>
Lưu ý tên của môi trường ảo trong dấu ngoặc. Thư mục Scripts chứa một bản sao cục bộ của trình thông dịch Python. Bạn có thể bắt đầu một phiên Python trong môi trường ảo này.
Để xác nhận xem phiên Python này có trong môi trường ảo hay không, hãy kiểm tra sys.path .
(myvenv) C:\pythonapp>python Python 3.10.1 (tags/v3.10.1:2cd268a, Dec 6 2021, 19:10:37) [MSC v.1929 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys.path ['', 'C:\\Python310\\python310.zip', 'C:\\Python310\\DLLs', 'C:\\Python310\\lib', 'C:\\Python310', 'C:\\pythonapp\\myvenv', 'C:\\pythonapp\\myvenv\\lib\\site-packages'] >>>
Thư mục scripts của môi trường ảo này cũng chứa các tiện ích pip. Nếu bạn cài đặt một gói từ PyPI, gói đó sẽ chỉ hoạt động trong môi trường ảo hiện tại.
Để hủy kích hoạt môi trường này, hãy chạy deactivate.bat .