Có thể cần một gói Python của một phiên bản cụ thể trong khi phát triển các ứng dụng dựa trên Python. Tuy nhiên, nếu phiên bản của cùng một gói này được cài đặt để sử dụng trên toàn hệ thống, thì nó có thể xung đột với các yêu cầu của ứng dụng khác. Do đó, mong muốn có các môi trường cạnh nhau cho từng mục đích để giải quyết các vấn đề về khả năng tương thích.
Môi trường ảo cho phép các gói Python được cài đặt ở một vị trí biệt lập cho một ứng dụng cụ thể, thay vì được cài đặt trên toàn cầu.
Mô-đun venv trong thư viện chuẩn của Python được sử dụng để tạo môi trường ảo. Môi trường ảo là một thư mục trong hệ thống tệp có bản sao của trình thông dịch Python và các tập lệnh khác. Lệnh sau tạo một môi trường ảo trong thư mục được đặt tên.
C:\python37>python -m venv e:\testenv
Bạn sẽ tìm thấy một thư mục mới được tạo theo chỉ định. Ở trên có thể tùy chọn sử dụng các công tắc sau
- system-site-pack | Cung cấp cho môi trường ảo quyền truy cập vào các gói site hệ thống dir. |
--symlinks | Cố gắng sử dụng liên kết sym thay vì sao chép |
--copies | Cố gắng sử dụng các bản sao thay vì các liên kết tượng trưng |
--clear | Xóa nội dung của thư mục môi trường nếu nó tồn tại |
- nâng cấp | Nâng cấp thư mục môi trường để sử dụng phiên bản Python này |
--without-pip | Bỏ qua cài đặt hoặc nâng cấp pip trong môi trường ảo (pip được khởi động theo mặc định) |
Thư mục 'script' trong ENV_DIR (trong trường hợp này là testenv) chứa bản sao cục bộ của trình thông dịch Python, trình cài đặt pip và các tập lệnh để kích hoạt và hủy kích hoạt môi trường.
activate activate.bat activate.ps1 deactivate.bat easy_install-3.7.exe easy_install.exe pip.exe pip3.7.exe pip3.exe python.exe pythonw.exe
Kích hoạt môi trường ảo
Để khởi động Python trong môi trường cô lập, trước tiên nó phải được kích hoạt. Vì mục đích này, 'active.bat' phải được gọi từ dòng lệnh.
E:\testenv>scripts\activate (testenv) E:\testenv>python Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>>
Tên của môi trường ảo xuất hiện trong dấu ngoặc đơn bên trái dấu nhắc DOS. Bây giờ bạn có thể Python trong môi trường ảo.
Nếu bất kỳ gói nào được cài đặt bằng tiện ích pip3 trong thư mục script của môi trường ảo, gói này sẽ được cài đặt cục bộ và sẽ không khả dụng để sử dụng trên toàn hệ thống.
Hủy kích hoạt môi trường ảo
Để trở lại môi trường bình thường, môi trường ảo phải được tắt bằng cách sử dụng 'deactivate.bat' trong thư mục script.
>>> quit() (testenv) E:\testenv>scripts\deactivate E:\testenv>
Đối với các phiên bản Python trước 3.3, hãy sử dụng virtualenv phải được cài đặt riêng.
Mô-đun venv đã định nghĩa lớp EnvironmentBuilder để tạo môi trường ảo theo chương trình.