Chuyển đến nội dung chính

Hướng dẫn Pip Python về Quản lý Package

Tìm hiểu về Pip, công cụ mạnh mẽ giúp bạn quản lý đúng cách các gói phân phối trong Python.
· 11 phút đọc

Khám phá cùng AI

Nếu bạn đang cân nhắc trở thành nhà khoa học dữ liệu, bạn bắt đầu học lập trình càng sớm càng tốt. Các chuyên gia dữ liệu dành rất nhiều thời gian để viết mã. Ngôn ngữ lập trình là công cụ chủ chốt giúp họ phân tích và rút ra những hiểu biết có ý nghĩa từ lượng dữ liệu khổng lồ. 

Có lẽ ngôn ngữ lập trình phổ biến nhất cho khoa học dữ liệu là Python. Python là ngôn ngữ mã nguồn mở, đa mục đích và mạnh mẽ, được ứng dụng trong nhiều lĩnh vực phần mềm như phát triển web, phát triển game và tất nhiên là khoa học dữ liệu. 

Mặc dù bản thân Python đã có thể làm được rất nhiều điều hay ho, các chuyên gia dữ liệu – và rộng hơn là các nhà phát triển phần mềm – thường sử dụng thêm các package – còn gọi là thư viện – để giúp công việc nhẹ nhàng hơn. Một package là tập hợp các tệp liên quan, mô-đun và phụ thuộc, có thể dùng lặp lại trong nhiều ứng dụng và bài toán khác nhau.

Một trong những điểm mạnh then chốt của Python là danh mục thư viện phong phú, có tài liệu đầy đủ và toàn diện. Vậy các thư viện này được lưu trữ ở đâu? Làm thế nào bạn có thể cài đặt và quản lý các package mình quan tâm? 

Trong hướng dẫn này, bạn sẽ được giới thiệu về thế giới package trong Python và pip, trình cài đặt package tiêu chuẩn cho Python. Pip là một công cụ mạnh mẽ cho phép bạn khai thác và quản lý vô số package Python mà bạn sẽ gặp với tư cách là một chuyên gia dữ liệu và lập trình viên.

Tìm hiểu về Package trong Python

Hãy dùng một phép ẩn dụ để hiểu pip là gì. Hãy tưởng tượng Python là một hộp dụng cụ cân đối với những vật dụng thiết yếu bạn cần để lập trình. Khi bạn mua (cài đặt) Python trên máy tính, nó đi kèm một bộ sưu tập lớn các công cụ bổ sung (package) mà bạn có thể dùng bất cứ lúc nào. 

Thư viện Chuẩn của Python là một tập hợp rộng lớn các package tích hợp sẵn, cung cấp giải pháp tiêu chuẩn cho nhiều vấn đề thường gặp trong lập trình hằng ngày. Vì các package này được đóng gói sẵn trong các bản phân phối Python hiện đại, bạn có thể dùng ngay mà không cần cài đặt thêm. Bạn chỉ cần “import” chúng vào không gian làm việc (phần này sẽ nói rõ hơn bên dưới).

Tuy nhiên, đôi khi bạn sẽ không tìm thấy công cụ mình cần trong Python hoặc Thư viện Chuẩn. Khi đó, bạn sẽ cần tìm công cụ mới ở nơi khác. May mắn thay, internet là một “cửa hàng” khổng lồ nơi bạn có thể tìm thấy hàng trăm nghìn package do cộng đồng lập trình viên Python phát triển cho đủ mọi mục đích. 

Và điều tuyệt vời nhất? Phần lớn các package này miễn phí để sử dụng. Nếu bạn muốn biết thêm về package trong Python và cách phát triển package của riêng mình, hãy xem khóa học Developing Python Packages của chúng tôi.  

Mặc dù các package bên thứ ba có thể được lưu trữ ở nhiều nơi, kho lưu trữ phổ biến và toàn diện nhất là Python Package Index (PyPi). Với hơn 300.000 package Python sẵn có, PyPI là một kho trực tuyến khổng lồ các package được cộng đồng Python chấp nhận.

Khi đã xác định được package bạn cần, bạn sẽ phải tải về và cài đặt nó trên máy để sử dụng. Làm thế nào để làm việc đó?  Đây chính là lúc các trình quản lý package xuất hiện.

Tìm hiểu về trình quản lý package: pip

Một trình quản lý package (còn gọi là hệ thống quản lý package) là công cụ tự động hóa quá trình cài đặt, nâng cấp, cấu hình và gỡ bỏ các package trên máy tính một cách nhất quán. 

Các trình quản lý package được thiết kế để loại bỏ nhu cầu cài đặt và cập nhật thủ công, từ đó đảm bảo một package được cài đặt cùng với mọi phụ thuộc mà nó cần để hoạt động. Đồng thời, vì các trình quản lý package tận dụng thông tin lưu trữ trên các kho package đã được chứng nhận như PyPi và Anaconda, chúng đảm bảo tính toàn vẹn và xác thực của package.

Trình quản lý package phổ biến nhất cho Python là pip. Được phát triển năm 2008, pip (viết tắt của “pip Install Packages”) ngày nay là công cụ tiêu chuẩn để cài đặt các package Python và phụ thuộc của chúng một cách an toàn. Hầu hết các bản phân phối Python gần đây đều đi kèm pip được cài sẵn. Python 2.7.9 và Python 3.4 trở lên mặc định đã bao gồm pip.

Pip là công cụ mạnh mẽ và thân thiện, cho phép bạn quản lý các package Python chỉ với vài lệnh. Dù pip dùng PyPi làm kho mặc định để lấy package, nó cũng có khả năng cài đặt package từ các nguồn khác, bao gồm:

  • Hệ thống quản lý phiên bản như Github, Mercurial, Subversion và Bazaar.
  • Tệp requirements. Thông thường, một package Python cần nhiều package khác để chạy. Để cài đặt tất cả các package cần thiết cùng lúc, pip dùng tệp gọi là requirements.txt, chứa danh sách các package cần có cũng như phiên bản chính xác.
  • Tệp phân phối. Đây là các tệp đã được gắn phiên bản, sẵn sàng cài đặt, chứa các package Python, mô-đun và tệp tài nguyên khác cần thiết để một package hoạt động. Có hai dạng:
    • Phân phối mã nguồn (thường viết tắt là “sdist”)
    • Phân phối dạng wheel (thường viết tắt là “wheel”)

Để sử dụng pip và bắt đầu quản lý package, trước tiên bạn cần đảm bảo pip đã được cài trên máy. Để kiểm tra pip có sẵn hay không, chạy một trong các lệnh sau trên dòng lệnh:

>>pip3 --version

>>pip --version

pip vs pip3 vs pip2

Sau khi đọc phần trước, bạn có thể tự hỏi sự khác nhau giữa pip và pip3 là gì. Sau khi Python 3 ra mắt, pip bổ sung lệnh pip3, luôn hoạt động trên môi trường Python 3 trên máy của bạn. Tương tự với lệnh pip2. Vì vậy, nếu bạn muốn đảm bảo pip hoạt động trên môi trường Python 3 hoặc Python 2, hãy lần lượt dùng lệnh pip3 hoặc pip2.

Ngược lại, lệnh pip sẽ hoạt động trên môi trường Python nào phù hợp với ngữ cảnh. Điều này liên quan khi bạn cài cả Python 2 và Python 3 trên máy. 

Ví dụ, máy MacOS dựa vào Python 2 để chạy một số chức năng cốt lõi.  Nếu bạn đang làm việc trong môi trường Python 2, lệnh pip sẽ cài đặt, gỡ, nâng cấp hoặc quản lý các package Python cho Python 2. Điều tương tự áp dụng nếu bạn làm việc trong môi trường Python 3. 

Tuy nhiên, trong những tình huống như vậy, bạn cần chắc chắn về môi trường Python mình đang dùng trước khi chạy lệnh pip, nếu không bạn có thể thao tác nhầm package ở sai môi trường.  

pip trong thực tế

Giờ bạn đã nắm được những điều cơ bản về pip và đã cài đặt trên máy, hãy xem cách sử dụng!

Cài đặt package với pip

Cách dùng phổ biến nhất của pip là cài đặt các package Python. Chẳng hạn, nếu bạn muốn cài pandas, package tiêu chuẩn để thao tác data frame trong Python, cách đơn giản nhất là chạy lệnh sau:

>>pip install pandas
[...]
Successfully installed pandas

Đôi khi bạn cần cài một package ở phiên bản nhất định. Với pip, việc này khá dễ. Bạn chỉ cần chỉ định phiên bản muốn cài. Giả sử bạn muốn cài pandas phiên bản 1.4.0:

>>pip install pandas==1.4.0

Nếu bạn muốn cài một package thỏa điều kiện về phiên bản, pip cho phép dùng các điều kiện logic. Ví dụ, nếu bạn muốn cài pandas có phiên bản lớn hơn hoặc bằng 1.0.0 và nhỏ hơn 1.5:

>>pip install pandas>=1.0.0,<1.5.0

Cài đặt gói scikit-learn với pip

Trong ví dụ sau, bạn sẽ học cách cài đặt package scikit-learn, thao tác này sẽ tự động cài các phụ thuộc cần thiết khác.

pip install scikit-learn

pip install scikit learn

Bạn có thể nhận thấy từ log rằng không chỉ mỗi package scikit-learn được cài đặt. Đó là vì pip sẽ cài mọi package khác mà scikit-learn phụ thuộc vào. Những package khác này gọi là phụ thuộc (dependencies).

Cài đặt danh sách package bằng tệp requirements của pip

Khi làm việc trong dự án cộng tác, rất thường gặp việc tất cả thành viên nhóm dùng cùng một bộ package với cùng phiên bản. Để đảm bảo điều đó, cách tốt nhất là cài đặt bằng tệp requirements. Thông thường đây là tệp văn bản chứa tất cả các package cùng phiên bản tương ứng được dùng trong dự án. 

Pip cho phép bạn cài một danh sách package cùng lúc bằng tệp requirements. Ví dụ, nếu dự án của chúng ta cần các package numpy, pandas và TensorFlow, ta có thể đưa chúng cùng phiên bản mong muốn vào tệp requirements.txt như dưới đây:

pip install requirements

Để cài các package liệt kê trong tệp requirements.txt, chúng ta chỉ cần chạy:

>>pip install -r requirements.txt

Nếu bạn muốn tạo tệp requirements để chia sẻ với cả nhóm, bạn có thể dùng lệnh sau:

>>pip freeze > requirements.txt

Cài package từ GitHub bằng pip

Bên cạnh PyPi, còn có những nguồn khác trên Internet nơi các package Python có thể được lưu trữ. Hệ thống quản lý phiên bản như GitHub có các kho package nơi bạn có thể tải lên và chia sẻ package với cộng đồng Python. 

Giả sử bạn muốn cài package lưu trên GitHub. Pip chỉ cần một tệp thực thi hợp lệ có sẵn tại URL của GitHub. Ví dụ:

>>pip install git+https://github.com/pypa/sampleproject.git@main

Nâng cấp package bằng pip

Đôi khi bạn sẽ cần nâng cấp lên phiên bản mới hơn của một package đã cài trên máy. Pip khiến quá trình này cực kỳ đơn giản. Ví dụ, nếu bạn muốn nâng cấp pandas lên phiên bản mới nhất:

>>pip install --upgrade pandas

Nếu bạn muốn nâng cấp tất cả các package được liệt kê trong requirements.txt, bạn có thể dùng:

>>pip install -r requirements.txt --upgrade

Lưu ý rằng pip cũng tự động gỡ phiên bản cũ của package trước khi nâng cấp lên phiên bản mới hơn.

Gỡ package bằng pip

Gỡ một package với pip rất dễ. Nếu bạn muốn gỡ pandas, bạn chỉ cần chạy:

>>pip uninstall pandas

Các lệnh pip bổ sung 

Mặc dù cài đặt, nâng cấp và gỡ bỏ package là các thao tác phổ biến nhất bạn sẽ làm với pip, vẫn còn một số lệnh khác đáng nhắc đến.

Nếu bạn cần thêm thông tin về các lệnh pip sẵn có và cách sử dụng, hãy chạy:

>>pip help

Để liệt kê tất cả các package đã cài trong môi trường của bạn:

>>pip list

Để xem tóm tắt về một package bạn quan tâm:

>>pip show [NameOfPackage]

Khắc phục sự cố với pip

Mặc dù pip khá đơn giản, chỉ với vài lệnh, nhưng sự cố vẫn có thể xảy ra. Dưới đây là danh sách những vấn đề thường gặp và cách khắc phục.

Cài đặt pip

Dù không phổ biến, vẫn có khả năng pip chưa được cài. Trong trường hợp này, cách dễ nhất để cài pip là chạy lệnh dưới đây. Lệnh này sẽ khiến Python kích hoạt package tích hợp sẵn ensurepip, được thiết kế để cài pip trong một môi trường Python. 

>>python3 -m ensurepip --default-pip

Nếu vấn đề vẫn tiếp diễn, hãy xem tài liệu của pip để thử các giải pháp thay thế.

Pip chưa được cập nhật

Phiên bản mới của một package có thể mang lại bản vá lỗi, tính năng mới và hiệu năng tốt hơn. Điều này áp dụng cho mọi package Python, bao gồm cả pip. Nếu bạn đang dùng phiên bản pip cũ, có thể gặp hành vi không mong muốn. Vì vậy, luôn khuyến nghị giữ pip được cập nhật, cũng như các package setuptools và wheel, vốn hữu ích để đảm bảo bạn cũng có thể cài đặt package từ bản lưu trữ mã nguồn. 

>>pip install –upgrade pip setuptools wheel

Kết luận

Hy vọng bạn thấy hữu ích! Là công cụ tiêu chuẩn để cài đặt package, pip là công cụ thiết yếu cho các nhà phát triển Python. Nó khá dễ dùng, giúp việc quản lý package trở nên đơn giản khi bạn đã quen với các lệnh và cách thức hoạt động. 

Nếu bạn đang tìm thêm tài nguyên, hãy xem các nội dung sau của DataCamp và bắt đầu với Python và pip ngay hôm nay!

Câu hỏi thường gặp về pip trong Python

Package trong Python là gì?

Một package là tập hợp các tệp liên quan, mô-đun và phụ thuộc, có thể dùng lặp lại trong nhiều ứng dụng và bài toán.

Trình quản lý package là gì?

Trình quản lý package là công cụ tự động hóa quá trình cài đặt, nâng cấp, cấu hình và gỡ bỏ các package trên máy tính một cách nhất quán.

pip là gì?

pip là trình quản lý package tiêu chuẩn trong Python.

Làm thế nào để cài package bằng pip?

Dùng pip install [NameOfPackage]

Làm thế nào để nâng cấp package bằng pip?

Dùng pip install --upgrade [NameOfPackage]

Làm thế nào để gỡ một package bằng pip?

Dùng pip uninstall [NameOfPackage]

Chủ đề

Liên quan