Các gói là một khối xây dựng thiết yếu trong lập trình. Nếu không có các gói, chúng tôi sẽ dành nhiều thời gian để viết mã đã được viết sẵn. Hãy tưởng tượng bạn phải viết mã từ đầu mỗi khi bạn muốn phân tích một tệp theo một định dạng cụ thể. Bạn sẽ không bao giờ hoàn thành được việc gì. Đó là lý do tại sao chúng tôi luôn muốn sử dụng các gói
Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn thuật ngữ của các mô-đun và gói Python, trước khi chỉ cho bạn cách cài đặt và sử dụng các gói trong mã Python của bạn. Sau đó, chúng tôi sẽ đề cập đến cách tạo các gói Python của riêng bạn và khám phá một số quả trứng Phục sinh. Hãy nhảy ngay vào
Gói Python là gì?
Để hiểu các gói Python, chúng ta sẽ xem xét ngắn gọn các tập lệnh và mô-đun. “Tập lệnh” là thứ bạn thực thi trong trình bao để hoàn thành một tác vụ đã xác định. Để viết một tập lệnh, bạn phải nhập mã vào trình soạn thảo văn bản yêu thích của mình và lưu nó bằng. phần mở rộng py. Sau đó, bạn có thể sử dụng lệnh python trong terminal để thực thi tập lệnh của mình.
Mặt khác, một mô-đun là một chương trình Python mà bạn nhập vào hoặc vào các chương trình khác của mình. “Mô-đun” thực sự là một thuật ngữ chung cho mã có thể tái sử dụng
Một gói Python thường bao gồm một số mô-đun. Về mặt vật lý, một gói là một thư mục chứa các mô-đun và có thể các thư mục khác mà chính chúng có thể chứa nhiều thư mục và mô-đun hơn. Về mặt khái niệm, đó là một không gian tên. Điều này đơn giản có nghĩa là các mô-đun của gói được liên kết với nhau bằng tên gói, theo đó chúng có thể được tham chiếu
Quay trở lại định nghĩa trước đó của chúng tôi về mô-đun là mã có thể nhập, có thể tái sử dụng, chúng tôi lưu ý rằng mọi gói đều là một mô-đun — nhưng không phải mọi mô-đun đều là một gói. Một thư mục gói thường chứa một tệp có tên __init__. py về cơ bản nói với Python. “Này, thư mục này là một gói. ” Tệp init có thể trống hoặc có thể chứa mã sẽ được thực thi khi khởi tạo gói
Chắc hẳn bạn cũng đã bắt gặp thuật ngữ “thư viện”. Đối với Python, một thư viện không được định nghĩa rõ ràng như một gói hoặc một mô-đun, nhưng một nguyên tắc nhỏ là bất cứ khi nào một gói được xuất bản, nó có thể được gọi là thư viện.
Cách sử dụng gói Python
Chúng tôi đã đề cập đến không gian tên, xuất bản gói và nhập mô-đun. Nếu bất kỳ thuật ngữ hoặc khái niệm nào trong số này không hoàn toàn rõ ràng đối với bạn, chúng tôi đã giúp bạn. Trong phần này, chúng tôi sẽ đề cập đến mọi thứ bạn cần để thực sự nắm bắt quy trình sử dụng các gói Python trong mã của mình.
Nhập gói Python
Chúng tôi sẽ nhập một gói bằng câu lệnh nhập
Giả sử rằng chúng tôi chưa cài đặt bất kỳ gói nào. Python đi kèm với một bộ sưu tập lớn các gói được cài đặt sẵn được gọi là Thư viện chuẩn Python. Nó bao gồm các công cụ cho nhiều trường hợp sử dụng, chẳng hạn như xử lý văn bản và làm toán. Hãy nhập cái sau
Bạn có thể coi câu lệnh nhập như một công cụ kích hoạt tìm kiếm cho một mô-đun. Các cuộc tìm kiếm được tổ chức chặt chẽ. Lúc đầu, Python tìm kiếm một mô-đun trong bộ đệm, sau đó trong thư viện chuẩn và cuối cùng trong danh sách các đường dẫn. Danh sách này có thể được truy cập sau khi nhập sys (một mô-đun thư viện tiêu chuẩn khác)
hệ thống. lệnh đường dẫn trả về tất cả các thư mục mà Python sẽ cố gắng tìm một gói. Có thể xảy ra trường hợp bạn đã tải xuống một gói nhưng khi bạn thử nhập gói đó, bạn sẽ gặp lỗi
Trong những trường hợp như vậy, hãy kiểm tra xem gói đã nhập của bạn đã được đặt vào một trong các đường dẫn tìm kiếm của Python chưa. Nếu không, bạn luôn có thể mở rộng danh sách đường dẫn tìm kiếm của mình
Tại thời điểm đó, trình thông dịch sẽ có nhiều hơn một vị trí để tìm kiếm các gói sau khi nhận được câu lệnh nhập.
Không gian tên và bí danh
Khi chúng tôi đã nhập mô-đun toán học, chúng tôi đã khởi tạo không gian tên toán học. Điều này có nghĩa là giờ đây chúng ta có thể tham chiếu đến các hàm và lớp từ mô-đun toán học bằng cách “ký hiệu dấu chấm”
Giả sử rằng chúng tôi chỉ quan tâm đến chức năng giai thừa của mô-đun toán học của chúng tôi và chúng tôi cũng cảm thấy mệt mỏi với việc sử dụng ký hiệu dấu chấm. Trong trường hợp đó, chúng ta có thể tiến hành như sau
Nếu bạn muốn nhập nhiều tài nguyên từ cùng một nguồn, bạn chỉ cần phân tách chúng bằng dấu phẩy trong câu lệnh nhập
Tuy nhiên, luôn có một rủi ro nhỏ là các biến của bạn sẽ xung đột với các biến khác trong không gian tên của bạn. Điều gì sẽ xảy ra nếu một trong các biến trong mã của bạn cũng được đặt tên là nhật ký? . Để tránh điều đó, tốt hơn là nhập gói như chúng tôi đã làm trước đây. Nếu bạn muốn tiết kiệm thời gian đánh máy, bạn có thể đặt bí danh cho gói của mình để đặt tên ngắn hơn
Bí danh là một kỹ thuật khá phổ biến. Một số gói có bí danh thường được sử dụng. Chẳng hạn, thư viện tính toán số NumPy hầu như luôn được nhập dưới dạng “np. ”
Một tùy chọn khác là nhập tất cả tài nguyên của mô-đun vào không gian tên của bạn
Tuy nhiên, phương pháp này tiềm ẩn rủi ro nghiêm trọng vì bạn thường không biết tất cả các tên có trong một gói, làm tăng khả năng các biến của bạn bị ghi đè. Vì lý do này mà hầu hết các lập trình viên Python dày dạn kinh nghiệm sẽ không khuyến khích sử dụng ký tự đại diện * trong nhập khẩu. Ngoài ra, như Zen of Python đã nói, “không gian tên là một ý tưởng tuyệt vời. ”
Cách cài đặt gói Python
Làm thế nào về các gói không phải là một phần của thư viện tiêu chuẩn? . Để cài đặt các gói từ PyPI, hãy sử dụng trình cài đặt gói pip
pip có thể cài đặt các gói Python từ bất kỳ nguồn nào, không chỉ PyPI. Nếu bạn đã cài đặt Python bằng Anaconda hoặc , bạn cũng có thể sử dụng lệnh conda để cài đặt các gói Python
Mặc dù conda rất dễ sử dụng, nhưng nó không linh hoạt như pip. Vì vậy, nếu bạn không thể cài đặt gói bằng conda, thay vào đó, bạn luôn có thể thử pip
Tải lại một mô-đun
Nếu bạn đang lập trình ở chế độ tương tác và bạn thay đổi tập lệnh của mô-đun, những thay đổi này sẽ không được nhập, ngay cả khi bạn đưa ra một câu lệnh nhập khác. Trong trường hợp như vậy, bạn sẽ muốn sử dụng hàm reload() từ thư viện importlib
Cách tạo gói Python của riêng bạn
Đóng gói mã của bạn để sử dụng tiếp không nhất thiết có nghĩa là bạn muốn xuất bản mã đó lên PyPI. Có thể bạn chỉ muốn chia sẻ nó với bạn bè hoặc tự mình sử dụng lại. Dù mục đích của bạn là gì, có một số tệp mà bạn nên đưa vào dự án của mình. Chúng tôi đã đề cập đến __init__. tập tin py.
Một tệp quan trọng khác là thiết lập. py. Sử dụng gói setuptools, tệp này cung cấp thông tin chi tiết về dự án của bạn và liệt kê tất cả các phụ thuộc — các gói mà mã của bạn yêu cầu để chạy đúng cách.
Xuất bản lên PyPI nằm ngoài phạm vi của hướng dẫn giới thiệu này. Nhưng nếu bạn có một gói để phân phối, dự án của bạn nên bao gồm thêm hai tệp nữa. một README. md được viết bằng Markdown và giấy phép. Hãy xem Hướng dẫn sử dụng bao bì Python (PyPUG) chính thức nếu bạn muốn biết thêm
Một số trứng Phục sinh nhập khẩu
Trứng Phục sinh là những món quà ẩn giấu giúp cuộc sống của nhà phát triển trở nên ngọt ngào hơn một chút. Có một vài trong số chúng được chôn trong thư viện chuẩn Python. Hãy thử nhập nhập cái này hoặc nhập phản trọng lực vào bảng điều khiển Python tương tác của bạn và tự mình xem
Tìm hiểu thêm
Là một lập trình viên Python, bạn sẽ cần biết tất cả về các mô-đun và gói. Hãy xem phần Giới thiệu về Nanodegree Lập trình của chúng tôi, nơi bạn sẽ đề cập đến nhiều chủ đề khác để nâng cao khả năng lập trình của mình