Có một số lựa chọn để thực hiện khi quản lý môi trường cho các dự án Python của bạn, bài viết này sẽ giải thích các phương pháp hay nhất để làm theo và các lỗi phổ biến cần tránh khi làm như vậy
Môi trường Python là gì?Theo mặc định, pip cài đặt các gói trên toàn cầu với trình thông dịch Python, thư viện chuẩn và các gói được cài đặt sẵn. Về mặt chức năng, điều này có nghĩa là tất cả các dự án trên một hệ thống sẽ sử dụng cùng một thư mục để lưu trữ và truy xuất các gói
Môi trường ảo thường được ưa thích hơn do khả năng tách biệt các dự án. Môi trường toàn cầu được sử dụng tốt nhất khi sử dụng Python để quản lý máy chủ, chạy tập lệnh Python nhanh hoặc tự động hóa máy chủ. Trong khi đó, môi trường ảo phù hợp hơn để quản lý gói và các dự án Python phức tạp.
Môi trường ảo
Trong thế giới Python, là một thư mục chứa các gói và các phần phụ thuộc khác mà dự án Python cần. Trái ngược với môi trường toàn cầu, môi trường ảo là không gian mã hóa biệt lập nơi các gói Python có thể được cài đặt, nâng cấp và sử dụng. Khi bạn cài đặt hoặc nâng cấp một gói, các phiên bản cũ vẫn được cài đặt trong thư mục của bạn, vì vậy các môi trường ảo khác nhau có thể sử dụng các phiên bản gói khác nhau. Bạn cũng có thể chỉ định phiên bản cụ thể của Python mà bạn muốn cho dự án của mình. Bạn có thể tự do lựa chọn giữa việc bắt đầu Python 2. 7, Trăn 3. 6, Trăn 3. 7, Trăn Trăn 4. 4. 0, v.v.
Tại sao cần môi trường ảo?
Môi trường ảo ngăn chặn sự phụ thuộc, phiên bản và xung đột quyền bằng cách tách biệt các dự án Python. Môi trường toàn cầu có nguy cơ gây ra xung đột phụ thuộc có thể ngăn ứng dụng của bạn xây dựng do các gói phụ thuộc vào các phiên bản cụ thể của các gói khác
Hãy xem xét hai dự án Python trong môi trường toàn cầu yêu cầu NumPy 1. 10 và NumPy 1. 20 tương ứng. Python không thể phân biệt giữa các phiên bản trong thư mục “gói trang web”. Vì vậy, cả hai phiên bản 1. 10 và phiên bản 1. 20 sẽ nằm trong cùng một thư mục có cùng tên
Môi trường toàn cầu thường trở nên lộn xộn với hàng chục gói khác nhau được cài đặt cho các dự án khác nhau. Không có cách nào tuyệt vời để tổ chức hoặc quản lý những thứ này trong môi trường toàn cầu, gây khó khăn cho việc kiểm tra kỹ lưỡng ứng dụng của bạn dựa trên một bộ gói cụ thể với các phiên bản đã biết
Các phương pháp hay nhất để quản lý môi trường Python
✔ Sử dụng môi trường ảo
Phải luôn sử dụng môi trường ảo trừ khi Python đang được sử dụng để quản lý máy chủ hoặc chạy các tập lệnh đơn giản. Có nhiều trình quản lý gói Python và môi trường ảo khác nhau để lựa chọn đi kèm với nhiều tính năng khác nhau. Điều quan trọng là phải xem xét cẩn thận môi trường ảo tốt nhất cho dự án Python của bạn
Virtualenv được cho là môi trường ảo Python thân thiện với người mới bắt đầu và phổ biến nhất. Nó được cài đặt sẵn Python 2 dưới dạng virtualenv và Python 3 dưới dạng venv. Tiện ích mở rộng virtualenvwrapper phổ biến bổ sung các tính năng bổ sung như hoàn thành tab và một lệnh duy nhất để chuyển đổi giữa các môi trường
Pipenv là một công cụ quản lý môi trường ảo và gói nhằm mục đích tích hợp chức năng của Pip và virtualenv vào một công cụ duy nhất. Đó là một công cụ tuyệt vời với các tính năng hữu ích nhưng nó phức tạp hơn để tìm hiểu so với virtualenv
Thơ là một công cụ Python giàu tính năng để quản lý phụ thuộc dự án. Nó nhanh hơn hầu hết các công cụ môi trường ảo và đi kèm với CLI mạnh mẽ để quản lý các dự án Python
Conda là một hệ thống quản lý môi trường và gói đa mục đích hỗ trợ cả Python và các ngôn ngữ khác như Ruby, Scala, R và C/C++. Nó được sử dụng để tạo, lưu, tải và chuyển đổi giữa các môi trường trong máy cục bộ của bạn. Conda được các nhà khoa học dữ liệu ưa chuộng và được cài đặt sẵn trong cả anaconda và miniconda
✔ Yêu cầu sử dụng. tệp txt
Cách tốt nhất để làm cho công việc của bạn có thể tái sản xuất và giữ cho môi trường của bạn nhất quán là đưa a vào thư mục gốc của dự án của bạn. một yêu cầu. txt chứa danh sách tất cả các gói có trong một dự án. Yêu cầu sử dụng. txt có thể được thực hiện trong hai bước đơn giản
- Sử dụng đóng băng pip để xuất các gói đã cài đặt phù hợp với tệp yêu cầu.
C:\> py -m pip freeze
docutils==0.11
Jinja2==2.7.2
MarkupSafe==0.19
Pygments==1.6
Sphinx==1.2.2
- Tạo yêu cầu. txt và sau đó cài đặt nó vào môi trường khác.
______6env2\bin\python -m pip install -r requirements.txt
Yêu cầu. txt giúp đảm bảo tính nhất quán trong quá trình cài đặt, triển khai và nhà phát triển. Họ cũng giúp quản lý các phụ thuộc Python
✔ Sử dụng môi trường ảo riêng cho từng dự án
Lý tưởng nhất là bạn nên có một môi trường ảo mới cho mọi dự án dựa trên Python mà bạn thực hiện. Mục đích chính của việc này là để giữ cho các phần phụ thuộc của mọi dự án được tách biệt khỏi cả hệ thống và lẫn nhau
Nếu bạn có nhiều dự án có các yêu cầu gần giống nhau, có vẻ như bạn nên tạo một môi trường ảo duy nhất mà cả hai dự án có thể chia sẻ. Vấn đề với điều này là một trong các dự án có thể đột nhiên có các yêu cầu phá vỡ một dự án khác. Toàn bộ quan điểm của môi trường ảo là cách ly từng dự án khỏi các dự án khác và những điều kỳ quặc của chúng
Dung lượng ổ đĩa và sự tiện lợi được tiết kiệm là không đáng kể và đơn giản là không đáng. Hơn nữa, sử dụng các yêu cầu. txt giúp dễ dàng thiết lập môi trường ảo cho dự án và cài đặt những gì nó cần bằng một vài lệnh
X Đừng quên kích hoạt môi trường ảo Python của bạn
Trước khi một môi trường ảo có thể được sử dụng trong một phiên shell cụ thể, nó phải được kích hoạt. Quên kích hoạt môi trường ảo hoặc kích hoạt sai môi trường là một lỗi quá phổ biến
Sau khi được kích hoạt, môi trường ảo được coi là phiên bản Python mặc định cho đến khi nó bị hủy kích hoạt bằng cách chạy lệnh hủy kích hoạt. Hãy nhớ rằng việc kích hoạt môi trường ảo là dành cho một phiên cụ thể chứ không phải cho toàn bộ hệ thống
X Không sử dụng >= để tạo phiên bản gói trong môi trường ảo Python
Khi sử dụng các yêu cầu. txt, bạn nên chỉ định các gói có. Ví dụ: sử dụng mypackage==3. 2, không phải gói của tôi>=3. 2
Nếu bạn không sử dụng các phiên bản gói cụ thể, điều đó sẽ ngăn cản một trong những lợi ích chính của việc sử dụng môi trường ảo. bản dựng có thể dự đoán. Nếu bạn sử dụng >= thay vì ==, không có gì đảm bảo rằng bạn hoặc người khác sẽ có cùng một phiên bản khi môi trường cần được tạo lại
Nuôi dưỡng môi trường Python
Môi trường Python của bạn sẽ trao quyền cho năng suất của bạn chứ không cản trở nó. Thực hiện theo các phương pháp hay nhất được trình bày trong bài viết này để tránh những cạm bẫy của Python và xây dựng một môi trường Python hiệu quả. Xây dựng một môi trường Python giống như ở nhà là một tài sản tuyệt vời nhưng còn rất nhiều điều phải hoàn thành khi trở thành một chuyên gia Python