Một gói Python phiên bản cụ thể có thể cần thiết khi phát triển ứng dụng dựa trên Python. Tuy nhiên, nếu phiên bản này của cùng một gói được cài đặt để sử dụng toàn hệ thống, nó có thể xung đột với yêu cầu của ứng dụng khác. Do đó, mong muốn có các môi trường song song cho từng mục đích để giải quyết vấn đề 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í độc lập cho một ứng dụng cụ thể, thay vì được cài đặt toàn cục.
Mô-đun venv trong thư viện chuẩn của Python được dùng để tạo môi trường ảo. Một môi trường ảo là một thư mục trong hệ thống tệp có bản sao riêng của trình thông dịch Python và các script 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 như đã chỉ định. Lệnh trên có thể tùy chọn sử dụng các chuyển đổi sau:
| --system-site-packages | Cho phép môi trường ảo truy cập thư mục site-packages của hệ thống. |
| --symlinks | Cố gắng dùng symbolic links thay vì sao chép. |
| --copies | Cố gắng dùng bản sao thay vì symbolic links. |
| --clear | Xóa nội dung thư mục môi trường nếu nó đã tồn tại. |
| --upgrade | 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 bootstrap theo mặc định). |
Thư mục scripts dưới 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 script để kích hoạt và vô hiệu hóa 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
Để bắt đầu Python trong môi trường cô lập, nó phải được kích hoạt trước. Cho mục đích này, activate.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 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ể dùng 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 scripts của môi trường ảo, nó sẽ được cài đặt cục bộ và sẽ không khả dụng cho việc sử dụng toàn hệ thống.
Vô hiệu hóa môi trường ảo
Để quay lại môi trường bình thường, môi trường ảo nên được vô hiệu hóa bằng deactivate.bat trong thư mục scripts.
>>> quit() (testenv) E:\testenv>scripts\deactivate E:\testenv>
Đối với các phiên bản Python trước 3.3, hãy 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.