Venv Python

Tận dụng các môi trường ảo trong Python để tạo và quản lý các môi trường riêng biệt cho các dự án Python của bạn

Bởi Serdar Yegulalp

Nhà văn cao cấp, InfoWorld.

NoLimit46 / GettyImages

Thực hành Python

  • Trăn là gì?
  • Cách bắt đầu với Python
  • Bắt đầu với Anaconda Python
  • 6 công cụ Python cần thiết cho dữ liệu
  • Giới thiệu Pandas DataFrame cho Python
  • 5 thư viện Python để làm nhẹ
  • Env ảo và venv. Python ảo
Cho xem nhiều hơn

Trong tất cả các lý do khiến Python trở thành điểm nhấn với các nhà phát triển, một trong những lý do lớn nhất là sự lựa chọn ngày càng rộng rãi và ngày càng mở rộng của nó đối với các gói của bên thứ ba. Bộ công cụ tiện lợi cho mọi thứ, từ nhập và định dạng dữ liệu đến toán học tốc độ cao và học máy chỉ cách bạn một quãng đường import hoặc pip install

Nhưng điều gì xảy ra khi những gói đó không chơi tốt với nhau?

Môi trường ảo Python là gì?

Môi trường ảo là một cách để có nhiều phiên bản song song của trình thông dịch Python, mỗi phiên bản có các bộ gói khác nhau và cấu hình khác nhau. Mỗi môi trường ảo chứa một bản sao riêng biệt của trình thông dịch Python, bao gồm các bản sao của các tiện ích hỗ trợ của nó

[Cũng trên InfoWorld. Nên và không nên làm gì với virtualenv và venv của Python ]

Các gói được cài đặt trong mỗi môi trường ảo chỉ được nhìn thấy trong môi trường ảo đó và không có gói nào khác. Ngay cả các gói lớn, phức tạp với các tệp nhị phân phụ thuộc vào nền tảng cũng có thể được loại bỏ khỏi nhau trong môi trường ảo

Có một vài trường hợp sử dụng phổ biến cho môi trường ảo

  1. Bạn đang phát triển nhiều dự án phụ thuộc vào các phiên bản khác nhau của cùng một gói hoặc bạn có một dự án phải được tách biệt khỏi các gói nhất định do xung đột không gian tên. Đây là trường hợp sử dụng tiêu chuẩn nhất
  2. Bạn đang làm việc trong môi trường Python nơi bạn không thể sửa đổi thư mục gói trang web. Điều này có thể là do bạn đang làm việc trong môi trường được kiểm soát chặt chẽ, chẳng hạn như dịch vụ lưu trữ được quản lý hoặc trên máy chủ không thể thay đổi lựa chọn trình thông dịch [hoặc các gói được sử dụng trong đó] do yêu cầu sản xuất
  3. Bạn muốn thử nghiệm một tổ hợp gói cụ thể trong các trường hợp được kiểm soát chặt chẽ, chẳng hạn như để kiểm tra khả năng tương thích chéo hoặc tương thích ngược
  4. Bạn muốn chạy phiên bản "cơ sở" của trình thông dịch Python trên hệ thống không có gói của bên thứ ba và chỉ cài đặt gói của bên thứ ba cho từng dự án riêng lẻ khi cần

Không có gì nói rằng bạn không thể đơn giản giải nén thư viện Python vào thư mục con của dự án và sử dụng nó theo cách đó. Tương tự như vậy, bạn có thể tải xuống một bản sao độc lập của trình thông dịch Python, giải nén nó vào một thư mục và sử dụng nó để chạy các tập lệnh và gói dành cho nó

Nhưng việc quản lý các dự án kết hợp với nhau như vậy sẽ sớm trở nên khó khăn. Nó chỉ có vẻ dễ dàng hơn để làm điều đó lúc đầu. Làm việc với các gói có các thành phần nhị phân hoặc dựa trên các phụ thuộc phức tạp của bên thứ ba có thể là một cơn ác mộng. Tồi tệ hơn, việc tái tạo một thiết lập như vậy trên máy của người khác hoặc trên máy mới do bạn quản lý, rất khó

Giải pháp lâu dài tốt nhất là sử dụng các cơ chế gốc của Python để tạo, sao chép và làm việc với môi trường ảo

Môi trường ảo trong Python hiện đại

Python có công cụ riêng cho môi trường ảo giúp toàn bộ quá trình trở nên khá đơn giản. Điều này không phải lúc nào cũng đúng, nhưng hiện tại tất cả các phiên bản Python được hỗ trợ đều sử dụng công cụ môi trường ảo gốc, venv

video liên quan. Cách Python giúp lập trình dễ dàng hơn

Hoàn hảo cho CNTT, Python đơn giản hóa nhiều loại công việc, từ tự động hóa hệ thống đến làm việc trong các lĩnh vực tiên tiến như học máy

Tạo môi trường ảo

Để tạo một môi trường ảo trong một thư mục nhất định, hãy nhập

python -m venv /path/to/directory

Lưu ý rằng bạn nên sử dụng python3 thay vì python nếu hệ thống của bạn nhận dạng phiên bản Python 2 làm trình thông dịch Python mặc định. Trên Windows, bạn có thể sử dụng py thay vì python để truy cập phiên bản Python đã cài đặt một cách đáng tin cậy. [Xem bài viết này để biết thêm về cách sử dụng py launcher trên Windows. ]

Toàn bộ quá trình thiết lập môi trường ảo có thể mất một hoặc hai phút. Khi hoàn tất, bạn sẽ có một thư mục với một vài thư mục con trong đó. Thư mục con quan trọng nhất là _______8 trên Unix hoặc _______9 trên Windows, đây là nơi bạn sẽ tìm thấy bản sao của trình thông dịch Python cho môi trường ảo cùng với các tiện ích của nó

Lưu ý rằng vì mỗi môi trường ảo chứa bản sao trình thông dịch Python riêng nên nó có thể khá lớn. Một con trăn 3. 9 môi trường ảo sẽ tiêu thụ từ 15 MB đến 25 MB dung lượng ổ đĩa, tùy thuộc vào hệ điều hành

Kích hoạt môi trường ảo

Trước khi bạn có thể sử dụng môi trường ảo này, bạn cần kích hoạt nó một cách rõ ràng. Kích hoạt làm cho môi trường ảo trở thành trình thông dịch Python mặc định trong suốt thời gian của phiên trình bao

Bạn sẽ cần sử dụng các cú pháp khác nhau để kích hoạt môi trường ảo tùy thuộc vào hệ điều hành và trình bao lệnh mà bạn đang sử dụng

  • Trên Unix hoặc MacOS, sử dụng bash shell. import0
  • Trên Unix hoặc MacOS, sử dụng csh shell. import1
  • Trên Unix hoặc MacOS, sử dụng shell cá. import2
  • Trên Windows sử dụng Command Prompt. import3
  • Trên Windows sử dụng PowerShell. import4

Lưu ý rằng môi trường được kích hoạt chỉ hoạt động đối với ngữ cảnh mà nó được kích hoạt trong. Chẳng hạn, nếu bạn khởi chạy hai phiên bản PowerShell, A và B và bạn chỉ kích hoạt môi trường ảo trong phiên bản A, thì môi trường đó sẽ chỉ áp dụng cho A. Nó sẽ không áp dụng bất cứ nơi nào khác

Nhiều IDE Python tự động phát hiện và kích hoạt môi trường ảo nếu tìm thấy một môi trường trong thư mục dự án hiện tại. Chẳng hạn, Microsoft Visual Studio Code có thể thực hiện việc này khi tiện ích mở rộng Python được bật. Mở một thiết bị đầu cuối bên trong Visual Studio Code sẽ tự động kích hoạt môi trường ảo đã chọn

Cấu hình và sử dụng môi trường ảo

Khi bạn đã kích hoạt môi trường ảo mới, bạn có thể sử dụng trình quản lý gói pip để thêm và thay đổi các gói cho nó. Bạn sẽ tìm thấy pip trong thư mục con Scripts của môi trường ảo trên Windows và trong thư mục con bin trên hệ điều hành Unix

Nếu bạn đã quen với cách thức hoạt động của pip, thì bạn đã sẵn sàng. Nó sẽ giống nhau trong một môi trường ảo. Chỉ cần đảm bảo rằng bạn đang sử dụng phiên bản pip quản lý các gói cho môi trường ảo trong ngữ cảnh nơi nó được kích hoạt—e. g. , phiên bash hoặc phiên Windows CLI/PowerShell. Nếu bạn muốn xác minh rằng bạn đang sử dụng đúng pip và đúng môi trường ảo, hãy nhập import7 và kiểm tra xem đường dẫn mà nó hiển thị có trỏ đến thư mục con của môi trường ảo của bạn không

Lưu ý khi bạn muốn nâng cấp pip trong môi trường ảo thì tốt nhất nên dùng lệnh import8. Điều này đảm bảo quá trình nâng cấp được chạy theo cách mà Python không khóa các tệp quan trọng. Lệnh import9 có thể không hoàn thành nâng cấp đúng cách

Để sử dụng môi trường ảo mà bạn đã tạo để chạy các tập lệnh Python, chỉ cần gọi Python từ dòng lệnh trong ngữ cảnh mà bạn đã kích hoạt nó. Chẳng hạn, để chạy tập lệnh, chỉ cần chạy pip install0

Quản lý các gói trong môi trường ảo

Khi bạn tạo một môi trường ảo mới, các gói pip và setuptools sẽ được cài đặt, nhưng đó là tất cả. Bạn sẽ cần cài đặt bất kỳ gói nào khác mà bạn muốn sử dụng trong môi trường. Đối với các dự án có yêu cầu phức tạp, bạn nên giữ trong thư mục gốc của dự án một yêu cầu. txt liệt kê các yêu cầu cho dự án. Bằng cách này, nếu bạn cần tạo lại môi trường ảo, bạn có thể cài đặt lại tất cả các gói cần thiết bằng lệnh pip install1

Lưu ý rằng các bản sao của pip và setuptools sống trong môi trường ảo là cục bộ của môi trường ảo đó. Mỗi môi trường ảo có các bản sao riêng, sẽ cần được cập nhật và duy trì độc lập. Đây là lý do tại sao bạn có thể nhận được cảnh báo về việc pip đã lỗi thời trong một số môi trường ảo chứ không phải những môi trường khác;

Vô hiệu hóa môi trường ảo

Khi bạn sử dụng xong môi trường ảo, bạn chỉ có thể chấm dứt phiên mà bạn đang sử dụng nó. Nếu bạn muốn tiếp tục làm việc trong cùng một phiên nhưng thay vào đó với trình thông dịch Python mặc định, hãy nhập pip install2 tại dấu nhắc. Người dùng Windows trên Dấu nhắc Lệnh cần chạy pip install3 từ thư mục con Scripts, nhưng người dùng Unix và người dùng Windows đang chạy PowerShell có thể chỉ cần nhập pip install2 vào bất kỳ thư mục nào

Loại bỏ môi trường ảo

Môi trường ảo là khép kín. Khi bạn không cần môi trường ảo nữa, bạn có thể xóa thư mục của nó. Trước tiên, chỉ cần đảm bảo rằng bạn đóng mọi bản sao đang chạy của Python sử dụng môi trường ảo

Môi trường ảo trong Python 2

Với Python 2, môi trường ảo không phải là tính năng gốc của ngôn ngữ. Thay vào đó, bạn cần cài đặt thư viện của bên thứ ba để tạo và quản lý môi trường ảo

Phổ biến nhất và được sử dụng rộng rãi trong các dự án này là virtualenv, xử lý việc tạo cấu trúc thư mục và sao chép các tệp cần thiết vào một môi trường ảo. Để cài đặt virtualenv, chỉ cần sử dụng pip install6. Để tạo một thư mục môi trường ảo với nó, hãy nhập pip install7. Kích hoạt và hủy kích hoạt môi trường ảo hoạt động giống như đối với môi trường ảo trong Python 3 [xem bên trên]

Lưu ý rằng không nên sử dụng Python 2 cho bất kỳ sự phát triển mới nào. Các môi trường ảo trong Python 2, giống như chính Python 2, chỉ nên được sử dụng để duy trì các dự án cũ mà cuối cùng sẽ được chuyển sang Python 3

Sử dụng môi trường ảo với sổ ghi chép Jupiter

Nếu bạn đang sử dụng sổ ghi chép Jupyter [còn gọi là sổ ghi chép IPython] và bạn đã cài đặt Jupyter trên toàn hệ thống, hãy tạo môi trường ảo của bạn và kích hoạt nó. Sau đó, từ thư mục môi trường ảo của bạn, hãy chạy pip install8 để thêm các thành phần cần thiết cho IPython. Cuối cùng, chạy pip install9, trong đó project_name là tên bạn muốn liên kết với dự án cụ thể đó. Từ đó, bạn sẽ có thể khởi chạy Jupyter và chuyển sang nhân IPython mà bạn đã cài đặt bên trong môi trường ảo

[ Theo dõi các video hướng dẫn về Python thông minh của Serdar Yegulalp để tìm hiểu các thủ thuật Python thông minh trong 5 phút hoặc ít hơn ]

Nâng cấp môi trường ảo

Khi bạn nâng cấp thời gian chạy Python trên hệ thống của mình, các môi trường ảo sử dụng phiên bản Python đó sẽ không tự động được nâng cấp. Đó là trách nhiệm của bạn. Và đó là do thiết kế, bởi vì việc vô tình nâng cấp lên các phiên bản Python có thể phá vỡ các gói hỗ trợ của chúng

Nếu bạn đã nâng cấp trình thông dịch Python hiện có với một điểm nâng cấp nhỏ—e. g. , từ Python 3. 9. 5 đến Python 3. 9. 7—bạn có thể dễ dàng nâng cấp mọi môi trường ảo tương ứng. Từ một dấu nhắc lệnh trong thư mục dự án, gõ

python -m venv /path/to/venv --upgrade

Không kích hoạt môi trường ảo trước, nếu không quá trình nâng cấp có thể không hoạt động

Nếu bạn đã cài đặt phiên bản chính mới của Python—e. g. , bạn đã có Python 3. 8 và bây giờ bạn cài đặt Python 3. 9 cùng với nó—bạn sẽ cần tạo một môi trường ảo mới sử dụng cụ thể phiên bản điểm chính mới. Không cố nâng cấp môi trường ảo hiện có lên phiên bản điểm chính cao hơn của Python

Có liên quan

  • con trăn
  • Mã nguồn mở
  • Phát triển phần mềm

Serdar Yegulalp là một nhà văn cao cấp tại InfoWorld, tập trung vào học máy, container hóa, devops, hệ sinh thái Python và đánh giá định kỳ

Venv trong Python là gì?

Mô-đun dùng để tạo và quản lý môi trường ảo được gọi là venv. venv thường sẽ cài đặt phiên bản Python mới nhất mà bạn có sẵn. Nếu bạn có nhiều phiên bản Python trên hệ thống của mình, bạn có thể chọn một phiên bản Python cụ thể bằng cách chạy python3 hoặc bất kỳ phiên bản nào bạn muốn.

Tại sao tôi nên sử dụng Python venv?

venv [dành cho Python 3] và virtualenv [dành cho Python 2] cho phép bạn quản lý cài đặt gói riêng biệt cho các dự án khác nhau . Về cơ bản, chúng cho phép bạn tạo một bản cài đặt Python bị cô lập “ảo” và cài đặt các gói vào bản cài đặt ảo đó.

Tôi nên sử dụng virtualenv hay venv?

Virtualenv theo truyền thống là thư viện được sử dụng để tạo môi trường ảo cho python. Tuy nhiên, bắt đầu python 3. 3, mô-đun venv đã được thêm vào thư viện tiêu chuẩn python và có thể được sử dụng làm thay thế cho virtualenv. Nếu phiên bản cũ hơn của python đang được sử dụng, thì virtualenv là cách tốt nhất .

Chủ Đề