Môi trường ảo Python: cách ly venv và phụ thuộc
Làm chủ môi trường ảo Python. Tìm hiểu cách tạo, kích hoạt và quản lý các phần phụ thuộc bằng venv và pip một cách an toàn.
Tổng quan
Khi làm việc trên nhiều dự án Python, chắc chắn bạn sẽ gặp phải xung đột về sự phụ thuộc. Dự án A có thể yêu cầuDjangophiên bản 3.2, trong khi Dự án B yêu cầuDjangophiên bản 5.0. Nếu bạn cài đặt các gói này trên toàn cầu, chúng sẽ ghi đè lên nhau, làm hỏng một trong các ứng dụng của bạn. Môi trường ảo giải quyết vấn đề quan trọng này bằng cách tạo các thư mục riêng biệt, dành riêng cho dự án có chứa các bản cài đặt thư viện và nhị phân Python của riêng chúng.
Python cung cấp hỗ trợ tích hợp cho môi trường ảo thông qua mô-đun `venv`. Khi bạn tạo môi trường ảo, một thư mục mới sẽ được tạo chứa bản sao của trình thông dịch Python, cùng với các tập lệnh để điều chỉnh môi trường shell của bạn. Khi được kích hoạt, mọi gói bạn cài đặt bằng `pip` đều được chuyển trực tiếp đến thư mục riêng biệt này, giúp quá trình cài đặt Python toàn cầu của bạn luôn sạch sẽ và không bị ảnh hưởng bởi các thư viện dành riêng cho dự án.
Quản lý môi trường ảo bao gồm ba lệnh cốt lõi. Đầu tiên, `python -m venv venv` tạo thư mục môi trường ảo có tên `venv`. Tiếp theo, bạn kích hoạt môi trường (`source venv/bin/activate` trên macOS/Linux hoặc `venv\Scripts\activate` trên Windows). Cuối cùng, bạn đóng băng các phần phụ thuộc của mình bằng cách sử dụng `pip đóng băng > require.txt`, tạo một danh sách mà các nhà phát triển khác có thể sử dụng để tạo lại môi trường chính xác. Hiểu môi trường ảo là phương pháp hay nhất không thể thương lượng đối với kỹ thuật Python hiện đại.
Đầu ra mã & thực thi
Một mô hình minh họa các lệnh để tạo, kích hoạt và xuất ra các yêu cầu về gói.
# This script prints the commands used to configure a virtual environment
commands = [
"python -m venv my_env # Create environment",
"source my_env/bin/activate # Activate environment (Mac/Linux)",
"pip install requests # Install isolated package",
"pip freeze > requirements.txt # Export dependency catalog"
]
print("--- Virtual Environment Lifecycle ---")
for index, cmd in enumerate(commands, 1):
print(f"Step {index}: {cmd}")--- Virtual Environment Lifecycle ---
Step 1: python -m venv my_env # Create environment
Step 2: source my_env/bin/activate # Activate environment (Mac/Linux)
Step 3: pip install requests # Install isolated package
Step 4: pip freeze > requirements.txt # Export dependency catalogTriển khai từng bước
- Cô lập các dự án không gian làm việc để ngăn chặn sự chồng chéo phụ thuộc
- Định cấu hình môi trường có thể dự đoán được cho vùng chứa Docker
- Vận chuyển các cơ sở mã có thể tái tạo bằng danh sách require.txt
Câu hỏi thường gặp
Tôi nên gitignore những thư mục nào trong dự án Python?
Bạn phải luôn thêm thư mục môi trường ảo (thường là 'venv/' hoặc '.venv/') vào tệp .gitignore của mình. Không bao giờ kiểm tra các phần phụ thuộc của thư viện bên ngoài vào git.
Làm cách nào để hủy kích hoạt môi trường ảo?
Chỉ cần gõ lệnh 'hủy kích hoạt' trong cửa sổ terminal của bạn và shell của bạn sẽ quay trở lại môi trường Python toàn cầu.
Chủ đề liên quan
Hiểu các mô-đun và gói Python. Tìm hiểu cách nhập tệp, cấu trúc các dự án lớn, sử dụng thư viện tiêu chuẩn và sử dụng nhập tuyệt đối và tương đối.
Giải thích về biến và kiểu dữ liệu trong PythonHiểu các biến Python và các kiểu dữ liệu cốt lõi (chuỗi, số nguyên, số float, boolean). Hướng dẫn đầy đủ cho người mới bắt đầu về gán bộ nhớ trong Python.
Tài nguyên Python được đề xuất
Mở rộng kiến thức của bạn với các hướng dẫn tương tác, bảng ghi chú và so sánh mã có liên quan.
Cách tạo và kích hoạt môi trường ảo Python
Tìm hiểu cách tạo, kích hoạt và quản lý môi trường ảo Python bằng mô-đun venv tích hợp. Giữ các phần phụ thuộc dự án của bạn được tách biệt và sạch sẽ.
Bảng cheat phương thức chuỗi Python
Hướng dẫn tham khảo đầy đủ về thao tác chuỗi Python. Làm chủ định dạng, tìm kiếm, phân tách, thay thế và kiểm tra thuộc tính chuỗi.
Python vs JavaScript: Ngôn ngữ lập trình nào tốt nhất?
So sánh toàn diện giữa Python và JavaScript. Khám phá sự khác biệt về cú pháp, hiệu suất, trường hợp sử dụng (phụ trợ so với giao diện người dùng) và các ví dụ về mã hóa.