Kích hoạt Python venv: Hướng dẫn cho người mới bắt đầu

Rebecca Kovács

Rebecca Kovács

2 tháng 5 2025

Kích hoạt Python venv: Hướng dẫn cho người mới bắt đầu

Trong thế giới phát triển Python năng động, việc quản lý các dependency (thư viện phụ thuộc) và môi trường dự án là rất quan trọng để giữ cho mọi thứ ổn định và thành công. Hãy tưởng tượng bạn đang làm việc trên hai dự án khác nhau: một dự án yêu cầu phiên bản cũ hơn của một thư viện phổ biến như requests, trong khi dự án kia lại cần các tính năng mới nhất. Cài đặt cả hai phiên bản trên toàn hệ thống chắc chắn sẽ dẫn đến xung đột, hỏng hóc và sự bực bội. Đây chính xác là vấn đề mà môi trường ảo Python được thiết kế để giải quyết.

Hướng dẫn này sẽ đưa bạn đi qua những kiến thức cơ bản về môi trường ảo Python, tập trung đặc biệt vào quá trình kích hoạt sử dụng module venv tích hợp sẵn. Chúng ta sẽ tìm hiểu lý do tại sao chúng lại cần thiết, cách tạo chúng, và quan trọng nhất, các lệnh từng bước để kích hoạt chúng trên các hệ điều hành và shell khác nhau.

💡
Muốn một công cụ kiểm thử API tuyệt vời có thể tạo ra tài liệu API đẹp mắt?

Muốn một nền tảng tích hợp, Tất cả trong Một để Nhóm Phát triển của bạn làm việc cùng nhau với năng suất tối đa?

Apidog đáp ứng mọi nhu cầu của bạn và thay thế Postman với mức giá phải chăng hơn nhiều!
button

Môi trường ảo chính xác là gì? (Và tại sao bạn chắc chắn cần chúng)

Về bản chất, một môi trường ảo Python là một cấu trúc thư mục được cô lập, chứa một cài đặt Python cụ thể và một tập hợp các package bổ sung. Hãy nghĩ về nó như một bong bóng độc lập cho dự án Python của bạn.

Các khái niệm chính:

  1. Cô lập: Khi bạn tạo và kích hoạt môi trường ảo, bất kỳ package nào bạn cài đặt (pip install ...) đều được đặt bên trong thư mục của môi trường đó, chứ không phải trong cài đặt Python toàn cục của bạn. Điều này ngăn chặn xung đột giữa các dự án có yêu cầu dependency khác nhau. Dự án A có thể sử dụng requests==2.20.0 trong khi Dự án B sử dụng requests==2.31.0 mà không gây ảnh hưởng lẫn nhau hoặc cài đặt Python cơ bản của hệ thống.
  2. Quản lý Dependency: Môi trường ảo giúp việc quản lý các dependency của dự án trở nên rõ ràng và có thể tái tạo. Bạn có thể tạo một danh sách tất cả các package (và phiên bản cụ thể của chúng) được cài đặt trong một môi trường (thường sử dụng pip freeze > requirements.txt). Tệp này sau đó có thể được chia sẻ với cộng tác viên hoặc sử dụng trong các quy trình triển khai để tạo lại môi trường chính xác như vậy ở nơi khác (pip install -r requirements.txt).
  3. Kiểm soát Phiên bản: Mặc dù ít phổ biến hơn với bản thân venv (thường sử dụng phiên bản Python mà nó được tạo ra), khái niệm này cho phép bạn liên kết một dự án với một phiên bản trình thông dịch Python cụ thể có sẵn trên hệ thống của bạn trong quá trình tạo. Các công cụ nâng cao hơn xây dựng dựa trên điều này để quản lý phiên bản Python chặt chẽ hơn.
  4. Sự gọn gàng: Nó giữ cho cài đặt Python toàn cục của bạn ngăn nắp. Chỉ các công cụ thiết yếu, cần thiết trên toàn cầu (như bản thân pip, venv, có thể là linters hoặc formatters nếu bạn thích chúng ở cấp độ toàn cục) nằm trong thư mục site-packages chính. Các thứ lộn xộn dành riêng cho dự án sẽ ở lại trong môi trường ảo của dự án.

Vấn đề được giải quyết:

Hãy xem xét kịch bản này mà không có môi trường ảo:

Với môi trường ảo:

Cả hai dự án đều hoạt động hoàn hảo, sử dụng các bản sao CoolLib được cô lập của riêng chúng ở các phiên bản yêu cầu.

Giới thiệu venv: Giải pháp tích hợp sẵn của Python

Từ Python 3.3, module venv đã được bao gồm trong thư viện chuẩn, làm cho nó trở thành cách được khuyến nghị để tạo môi trường ảo nhẹ. Trước venv, package virtualenv là giải pháp bên thứ ba được sử dụng phổ biến (và nó vẫn cung cấp một số tính năng bổ sung), nhưng đối với hầu hết các trường hợp sử dụng thông thường, venv là đủ và có sẵn.

Bước 1: Tạo môi trường ảo của bạn

Trước khi bạn có thể kích hoạt một môi trường, bạn cần tạo nó. Việc này được thực hiện bằng cách sử dụng module venv, chạy thông qua cờ `-m` với trình thông dịch Python bạn muốn.

Mở terminal hoặc command prompt của bạn, điều hướng đến thư mục gốc của dự án và chạy lệnh sau:

# For Linux/macOS
python3 -m venv <environment_name>

# For Windows (often just 'python' works)
python -m venv <environment_name>

Giải thích:

Hãy sử dụng .venv làm tên ví dụ của chúng ta:

# Linux/macOS
python3 -m venv .venv

# Windows
python -m venv .venv

Sau khi chạy lệnh này, bạn sẽ thấy một thư mục mới có tên .venv (hoặc tên bạn đã chọn) trong thư mục dự án của bạn.

Bên trong thư mục môi trường ảo:

Nếu bạn xem bên trong thư mục .venv, bạn sẽ thấy cấu trúc như thế này (chi tiết có thể khác một chút giữa các hệ điều hành):

Bước 2: Kích hoạt môi trường ảo (Sự kiện chính!)

Việc tạo môi trường thiết lập cấu trúc, nhưng kích hoạt nó sẽ sửa đổi phiên làm việc shell hiện tại của bạn để sử dụng trình thông dịch Python và các package của môi trường đó theo mặc định. Kích hoạt về cơ bản là thêm thư mục script của môi trường (.venv/bin hoặc .venv/Scripts) vào biến môi trường PATH của shell của bạn.

Lệnh kích hoạt chính xác phụ thuộc vào **Hệ điều hành** và **Shell** bạn đang sử dụng.

A. Windows:

Command Prompt (cmd.exe):

.venv\Scripts\activate.bat

PowerShell:

.venv\Scripts\Activate.ps1
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Bạn có thể cần chạy PowerShell với quyền Administrator để thay đổi chính sách. Tham khảo tài liệu PowerShell để biết chi tiết về chính sách thực thi. Thông thường, chỉ cần chạy trực tiếp .venv\Scripts\Activate.ps1 sẽ hoạt động nếu chính sách cho phép.

Git Bash (hoặc các shell giống Bash khác trên Windows):

source .venv/Scripts/activate

(Lưu ý dấu gạch chéo tiến và không có phần mở rộng tệp).

B. macOS / Linux:

Bash hoặc Zsh (Mặc định phổ biến):

source .venv/bin/activate

Fish Shell:

source .venv/bin/activate.fish

Csh hoặc Tcsh:

source .venv/bin/activate.csh

Làm thế nào để biết nó đã được kích hoạt?

Dấu hiệu rõ ràng nhất cho thấy bạn đã kích hoạt môi trường ảo thành công là sự thay đổi trong **dấu nhắc shell** của bạn. Tên của môi trường (ví dụ: (.venv)) thường sẽ xuất hiện ở đầu dòng dấu nhắc:

# Trước khi kích hoạt (ví dụ)
user@hostname:~/my_project$

# Sau khi kích hoạt (ví dụ)
(.venv) user@hostname:~/my_project$

Tiền tố này ngay lập tức cho bạn biết rằng phiên làm việc shell của bạn hiện đang hoạt động bên trong môi trường ảo đã chỉ định. Bất kỳ lệnh python hoặc pip nào bạn chạy bây giờ sẽ sử dụng các tệp thực thi và package bên trong .venv.

Bạn có thể kiểm tra điều này:

# Kiểm tra tệp thực thi Python nào đang được sử dụng
which python  # Linux/macOS
where python # Windows (cmd/powershell)

# Kiểm tra pip nào đang được sử dụng
which pip # Linux/macOS
where pip # Windows (cmd/powershell)

Kết quả đầu ra sẽ trỏ đến các đường dẫn bên trong thư mục .venv của bạn.

Bước 3: Làm việc bên trong môi trường đã kích hoạt

Với môi trường đã được kích hoạt, giờ đây bạn có thể:

(.venv) $ pip install requests
(.venv) $ pip install flask pandas numpy
(.venv) $ pip list
(.venv) $ pip freeze

(pip freeze cho kết quả đầu ra phù hợp với requirements.txt).

(.venv) $ python my_script.py

Bước 4: Hủy kích hoạt môi trường ảo

Khi bạn hoàn thành công việc trên dự án của mình trong môi trường ảo, bạn có thể hủy kích hoạt nó để đưa phiên làm việc shell của bạn trở lại bình thường, sử dụng cài đặt Python mặc định của hệ thống.

Chỉ cần chạy lệnh:

(.venv) $ deactivate

Lệnh này hoạt động chung trên tất cả các shell và hệ điều hành được đề cập ở trên một khi môi trường đã hoạt động.

Sau khi chạy deactivate, bạn sẽ nhận thấy:

  1. Tiền tố (.venv) biến mất khỏi dấu nhắc shell của bạn.
  2. Chạy which python/where python giờ đây sẽ trỏ lại trình thông dịch Python toàn cục của bạn.

Tóm tắt các Thực hành Tốt nhất

# .gitignore
.venv/
# Để tạo/cập nhật
(.venv) $ pip freeze > requirements.txt

# Để cài đặt từ tệp trong môi trường mới
(.venv) $ pip install -r requirements.txt

Khắc phục sự cố kích hoạt phổ biến

Kết luận

Kích hoạt môi trường ảo Python là một kỹ năng cơ bản cho bất kỳ nhà phát triển Python nào. Đó là cánh cổng dẫn đến việc quản lý dependency hiệu quả, cô lập dự án và các bản dựng có thể tái tạo. Mặc dù lệnh chính xác có thể hơi khác nhau tùy thuộc vào hệ điều hành và shell của bạn, quy trình cốt lõi bao gồm việc điều hướng đến dự án của bạn, chạy script kích hoạt thích hợp (thường nằm trong .venv/bin/ hoặc .venv/Scripts/), và xác nhận kích hoạt thông qua dấu nhắc shell đã được sửa đổi. Khi đã thành thạo, việc sử dụng venv trở thành bản năng thứ hai, cho phép quy trình phát triển Python sạch sẽ hơn, đáng tin cậy hơn và không có xung đột. Hãy biến nó thành thói quen cho mỗi dự án Python mới mà bạn bắt đầu!

💡
Muốn một công cụ kiểm thử API tuyệt vời có thể tạo ra tài liệu API đẹp mắt?

Muốn một nền tảng tích hợp, Tất cả trong Một để Nhóm Phát triển của bạn làm việc cùng nhau với năng suất tối đa?

Apidog đáp ứng mọi nhu cầu của bạn và thay thế Postman với mức giá phải chăng hơn nhiều!
button

Thực hành thiết kế API trong Apidog

Khám phá cách dễ dàng hơn để xây dựng và sử dụng API