Preparing your experience...

Tải Nhanh venv Python — Local Trước, Sau Đó Global

— 2 phút đọc

Chuyển đổi giữa các dự án Python nên diễn ra ngay lập tức. Mẫu dưới đây giúp bạn làm điều đó với một lệnh duy nhất: kiểm tra xem có .venv local trong thư mục hiện tại hay không, nếu không có thì fallback sang ~/.venv toàn cục.

Lưu ý: Hướng dẫn này dành cho macOS và Linux (bash / zsh). Windows dùng Scripts\activate thay vì bin/activate, và đường dẫn dùng \ thay vì /. Hãy điều chỉnh hàm tương ứng hoặc chạy nó trong Git Bash / WSL nơi bash có sẵn.

Hàm

Thêm vào ~/.bashrc (hoặc ~/.zshrc) của bạn:

pyon() {
    if [ -f "./.venv/bin/activate" ]; then
        source "./.venv/bin/activate"
    elif [ -f "$HOME/.venv/bin/activate" ]; then
        source "$HOME/.venv/bin/activate"
    else
        echo "pyon: no venv found in ./.venv or ~/.venv" >&2
        return 1
    fi
}

Sau đó tải lại cấu hình shell với source ~/.bashrc là xong.

Cách hoạt động

Chạy pyon từ bất kỳ thư mục nào. Hàm kiểm tra hai vị trí theo thứ tự:

  1. Local: .venv/bin/activate — môi trường ảo cụ thể cho dự án, tạo bởi python3 -m venv .venv.
  2. Global: ~/.venv/bin/activate — môi trường chung cá nhân của bạn cho các dự án không đi kèm venv riêng.

Nếu không có cái nào, hàm in lỗi và thoát với mã 1 để bạn biết ngay có vấn đề.

Tạo venv global

Với các dự án không có môi trường ảo local, cấu hình một lần một global duy nhất:

python3 -m venv ~/.venv

Sau đó chạy pyon trong bất kỳ thư mục dự án nào — nó sẽ tự động kích hoạt môi trường chia sẻ này.

Cẩn thận: Nếu bạn tạo .venv local mới bên trong một dự án trước đó đang dùng global, đừng quên chạy lại pyon từ trong thư mục dự án đó. Hàm được giải quyết khi gọi, không phải lúc khởi động shell.

Tại sao cách này tốt hơn sourcing thủ công

Cách truyền thống là mỗi lần phải nhớ và gõ đường dẫn đầy đủ:

source my-project/.venv/bin/activate

Điều này sẽ hỏng ngay khi bạn đổi thư mục hoặc làm việc với nhiều dự án. Với pyon, bạn chỉ cần gõ một từ — bất kể bạn ở đâu — và nó tự tìm đúng môi trường cho bạn. Nó cũng hoạt động trong các thư mục con, đúng theo cách hầu hết lập trình viên di chuyển qua các thư mục dự án.

Vô hiệu hóa

Giống như mọi môi trường ảo khác, thoát bằng:

deactivate

Câu lệnh này khôi phục shell của bạn về Python hệ thống. Hàm pyon không can thiệp vào deactivate.

TenolifeTENOLIFE