Apidog

Nền tảng phát triển API hợp tác tất cả trong một

Thiết kế API

Tài liệu API

Gỡ lỗi API

Giả lập API

Kiểm thử API tự động

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

Stefania Boiko

Stefania Boiko

Updated on tháng 5 2, 2025

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:

  • Bạn cài đặt CoolLib v1.0 cho ProjectAlpha.
  • Sau đó, bạn bắt đầu ProjectBeta yêu cầu CoolLib v2.0 (phiên bản này có những thay đổi gây lỗi so với v1.0).
  • Bạn nâng cấp CoolLib toàn cục lên v2.0.
  • Bây giờ, ProjectAlpha bị lỗi vì nó được xây dựng dựa trên CoolLib v1.0.

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

  • Tạo venv_alpha cho ProjectAlpha. Kích hoạt nó. Cài đặt CoolLib v1.0. Hủy kích hoạt.
  • Tạo venv_beta cho ProjectBeta. Kích hoạt nó. Cài đặt CoolLib v2.0. Hủy kích hoạt.

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:

  • python3 hoặc python: Chỉ định trình thông dịch Python mà bạn muốn môi trường ảo dựa trên. Nếu bạn có nhiều phiên bản Python được cài đặt, hãy chỉ định rõ ràng (ví dụ: python3.11 -m venv ...).
  • -m venv: Yêu cầu Python chạy module venv như một script.
  • <environment_name>: Đây là tên bạn chọn cho thư mục sẽ chứa các tệp môi trường ảo của bạn. Các quy ước phổ biến bao gồm:
  • venv
  • .venv (Dấu chấm đầu tiên thường ẩn thư mục theo mặc định trong các hệ thống *nix và báo hiệu cho một số công cụ rằng đó là siêu dữ liệu. Đây là một tiêu chuẩn được áp dụng rộng rãi.)
  • env
  • .env

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):

  • bin/ (Linux/macOS) hoặc Scripts/ (Windows): Đây là thư mục quan trọng chứa tệp thực thi Python dành riêng cho môi trường này, tệp thực thi pip liên kết với môi trường này, và quan trọng là các script kích hoạt (activate, activate.bat, Activate.ps1, v.v.).
  • include/: Chứa các tệp tiêu đề C để biên dịch các module mở rộng Python (ít liên quan cho việc sử dụng cơ bản).
  • lib/ (Linux/macOS) hoặc Lib/ (Windows): Chứa bản sao hoặc liên kết tượng trưng (symlink) của thư viện chuẩn Python và, quan trọng, thư mục con site-packages nơi các package được cài đặt vào môi trường này sẽ nằm.
  • pyvenv.cfg: Một tệp cấu hình chỉ định các tùy chọn được sử dụng để tạo môi trường, như trình thông dịch Python cơ sở được sử dụng.

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):

  • Điều hướng đến thư mục dự án của bạn chứa thư mục .venv.
  • Chạy script .bat:
.venv\Scripts\activate.bat

PowerShell:

  • Điều hướng đến thư mục dự án của bạn.
  • Chạy script .ps1:
.venv\Scripts\Activate.ps1
  • Lưu ý quan trọng về Chính sách thực thi (Execution Policy): Theo mặc định, PowerShell có thể ngăn chạy script vì lý do bảo mật. Nếu bạn thấy lỗi như "...không thể tải vì việc chạy script đã bị tắt trên hệ thống này," bạn có thể cần thay đổi chính sách thực thi cho phiên làm việc hiện tại hoặc người dùng. Một lệnh phổ biến (nhưng hãy sử dụng cẩn thận, hiểu rõ các ý nghĩa bảo mật) là:
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):

  • Điều hướng đến thư mục dự án của bạn.
  • Sử dụng lệnh source (tương tự như Linux/macOS):
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):

  • Điều hướng đến thư mục dự án của bạn.
  • Sử dụng lệnh source:
source .venv/bin/activate

Fish Shell:

  • Điều hướng đến thư mục dự án của bạn.
  • Fish sử dụng một script kích hoạt khác:
source .venv/bin/activate.fish

Csh hoặc Tcsh:

  • Điều hướng đến thư mục dự án của bạn.
  • Sử dụng script .csh:
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ể:

  • Cài đặt package: Các package chỉ cài đặt vào môi trường đang hoạt động.
(.venv) $ pip install requests
(.venv) $ pip install flask pandas numpy
  • Kiểm tra các package đã cài đặt: Xem những gì dành riêng cho môi trường này.
(.venv) $ pip list
(.venv) $ pip freeze

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

  • Chạy script Python: Script của bạn sẽ sử dụng trình thông dịch Python và các package đã cài đặt của môi trường.
(.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

  • Tên: Sử dụng .venv hoặc venv. .venv ngày càng trở thành tiêu chuẩn.
  • Vị trí: Tạo thư mục môi trường trực tiếp trong thư mục gốc của dự án của bạn.
  • .gitignore: **Quan trọng, hãy thêm tên thư mục môi trường ảo của bạn vào tệp .gitignore của dự án.** Điều này ngăn bạn vô tình commit hàng gigabyte các package đã cài đặt vào hệ thống kiểm soát phiên bản. Tệp requirements.txt của bạn mới là thứ nên được commit.
# .gitignore
.venv/
  • Một cho mỗi dự án: Thông thường, mỗi dự án riêng biệt sẽ có môi trường ảo riêng.
  • Tệp Requirements: Duy trì một tệp requirements.txt:
# Để 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

  • "Không tìm thấy lệnh" / "Không có tệp hoặc thư mục như vậy":
  • Bạn có đang ở trong thư mục chính xác (thư mục chứa thư mục .venv) không?
  • Bạn đã gõ đường dẫn chính xác chưa (.venv/bin/activate so với .venv\Scripts\activate.bat)? Kiểm tra dấu gạch chéo tiến so với dấu gạch chéo ngược.
  • Bạn có đang sử dụng lệnh đúng cho shell của mình không (source cho bash/zsh/fish, đường dẫn trực tiếp cho cmd, .ps1 cho PowerShell)?
  • Lỗi Chính sách thực thi của PowerShell: Xem phần kích hoạt PowerShell ở trên liên quan đến Set-ExecutionPolicy. Hãy cẩn thận và hiểu rõ các ý nghĩa trước khi thay đổi cài đặt bảo mật.
  • Bị từ chối quyền: Đảm bảo các script kích hoạt có quyền thực thi (thường được venv thiết lập đúng, nhưng hãy kiểm tra bằng ls -l trên Linux/macOS nếu cầ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