Làm cách nào để định vị một gói trong python?

Các thuộc tính hàm được Python tạo tự động cho bạn. Các thuộc tính này thực hiện các tác vụ sau hoặc chứa thông tin sau

  • __buildins__ . Chứa danh sách tất cả các thuộc tính tích hợp có thể truy cập được từ gói. Python tự động thêm các thuộc tính này cho bạn.

  • __cached__ . Cho bạn biết tên và vị trí của tệp được lưu trong bộ nhớ cache được liên kết với gói. Thông tin vị trí (đường dẫn) có liên quan đến thư mục Python hiện tại.

  • __doc__ . Xuất thông tin trợ giúp cho gói, giả sử rằng bạn đã thực sự điền thông tin đó vào. Ví dụ, nếu bạn gõ os. __doc__ và nhấn Enter, Python sẽ xuất thông tin trợ giúp được liên kết với thư viện os .

  • __file__ . Cho bạn biết tên và vị trí của gói hàng. Thông tin vị trí (đường dẫn) có liên quan đến thư mục Python hiện tại.

  • __đang khởi tạo__ . Xác định xem gói có đang trong quá trình tự khởi tạo hay không. Thông thường, thuộc tính này trả về giá trị Sai . Thuộc tính này hữu ích khi bạn cần đợi cho đến khi một gói tải xong trước khi bạn nhập một gói khác phụ thuộc vào gói đó.

  • __loader__ . Xuất thông tin trình tải cho gói này. Trình tải là một phần mềm lấy gói và đặt nó vào bộ nhớ để Python có thể sử dụng nó. Đây là một thuộc tính bạn hiếm khi (nếu có) sử dụng.

  • __tên__ . Chỉ cho bạn biết tên của gói.

  • __gói__ . Thuộc tính này được hệ thống nhập sử dụng nội bộ để giúp tải và quản lý các gói dễ dàng hơn. Bạn không cần phải lo lắng về thuộc tính cụ thể này.

Bạn có thể ngạc nhiên khi thấy rằng bạn có thể đi sâu hơn nữa vào các thuộc tính. Nhập dir(MyLibrary. SayXin chào) và nhấn Enter

Làm cách nào để định vị một gói trong python?

Một số mục này, chẳng hạn như __name__ , cũng xuất hiện trong danh sách gói. Tuy nhiên, bạn có thể tò mò về một số mục khác. Ví dụ: bạn có thể muốn biết __sizeof__ là gì. Một cách để nhận thêm thông tin là nhập help(“__sizeof__”) và nhấn Enter. Bạn thấy một số thông tin trợ giúp ít ỏi (nhưng hữu ích).

Làm cách nào để định vị một gói trong python?

Python sẽ không nổ tung nếu bạn thử thuộc tính. Ngay cả khi trình bao gặp sự cố, bạn luôn có thể bắt đầu một trình bao mới. Vì vậy, một cách khác để kiểm tra một gói là chỉ cần thử các thuộc tính. Ví dụ: nếu bạn nhập MyLibrary. nói xin chào. __sizeof__( ) và nhấn Enter, bạn sẽ thấy kích thước của hàm SayHello() theo byte.

Làm cách nào để định vị một gói trong python?

Không giống như nhiều ngôn ngữ lập trình khác, Python cũng cung cấp mã nguồn cho các thư viện ngôn ngữ bản địa của nó. Ví dụ: khi bạn xem thư mục Python33Lib , bạn sẽ thấy danh sách . py mà bạn có thể mở trong IDLE mà không gặp vấn đề gì.

Làm cách nào để định vị một gói trong python?

Xem trực tiếp nội dung có thể giúp bạn khám phá các kỹ thuật lập trình mới và hiểu rõ hơn về cách thức hoạt động của thư viện. Bạn càng dành nhiều thời gian làm việc với Python, bạn sẽ càng sử dụng nó tốt hơn để xây dựng các ứng dụng thú vị

Đảm bảo rằng bạn chỉ nhìn vào mã thư viện và không vô tình thay đổi nó. Nếu bạn vô tình thay đổi mã, các ứng dụng của bạn có thể ngừng hoạt động. Tệ hơn nữa, bạn có thể đưa các lỗi tinh vi vào ứng dụng của mình, các lỗi này sẽ chỉ xuất hiện trên hệ thống của bạn chứ không phải ở bất kỳ đâu khác. Luôn cẩn thận khi làm việc với mã thư viện

Nếu bạn bắt đầu viết dự án bằng Python, rất có thể bạn sẽ thấy mình đang sử dụng gói bên ngoài. Một ví dụ về điều này có thể là. pandas , numpy , requests và nhiều thứ khác nữa (tính đến tháng 11 năm 2021, có ~ 337 564 gói Python được phân phối chính thức)

Nhưng làm thế nào để bạn biết nếu một gói có chất lượng tốt?

Trong bài viết này, bạn sẽ tìm thấy một số mẹo về nơi để tìm các gói chất lượng cao và những yếu tố bạn nên xem xét để chọn gói tốt nhất

Cảm hứng cho bài viết này đến từ khóa học “Managing Python Dependencies” của Dan Bader. Anh ấy đã viết một cái nhìn tổng quan rất rõ ràng và đơn giản về cách xử lý đúng cách các gói bên ngoài, từ môi trường ảo đến các tệp yêu cầu để phát triển/sản xuất. Nếu bạn tò mò về chủ đề này, tôi khuyên bạn nên xem nó

Dưới đây bạn sẽ tìm thấy phần mà tôi thấy khai sáng nhất, được mở rộng bằng kinh nghiệm cá nhân của tôi

Mục lục

1.
2.
3.
4.


Tôi có thể tìm thấy một gói tốt ở đâu?

Lựa chọn đầu tiên. Thư viện chuẩn Python

Nếu bạn đang thực hiện một tác vụ khá đơn giản, rất có thể bạn có thể sử dụng gói có trong Thư viện chuẩn Python

Thư viện này là tập hợp các mô-đun được tự động đưa vào các bản phân phối Python và cung cấp các giải pháp được tiêu chuẩn hóa

Sử dụng gói từ thư viện chuẩn luôn tốt hơn cài đặt gói được tải xuống từ nguồn khác vì

  1. Bạn đang sử dụng giải pháp tiêu chuẩn → mã của bạn sẽ dễ đọc hơn đối với các nhà phát triển khác
  2. Nguy cơ cài đặt một mô-đun không hoạt động/có chất lượng kém thấp hơn nhiều

Cách dễ nhất để tham khảo Thư viện chuẩn là xem Chỉ mục mô-đun Python nơi tất cả các mô-đun tích hợp được liệt kê cùng với một mô tả ngắn gọn

⚠️ Lưu ý tôi. nhớ chọn phiên bản Python mà bạn đang sử dụng ở góc trên cùng bên trái

📚 Mẹo tôi. bạn có thể thực hiện tìm kiếm bằng hộp tìm kiếm ở trên cùng bên phải hoặc chỉ cần ctrl+F trong trình duyệt của mình

📚 Mẹo II. làm quen với danh sách này là một ý tưởng hay để bạn không gặp rủi ro phát minh lại bánh xe trong dự án của mình. Ví dụ về các mô-đun tích hợp siêu phổ biến mà bạn nên biết là. pathlib , os , global , datetime , venv , v.v.

Lựa chọn thứ hai. Sử dụng một danh sách giám tuyển

Có một vài danh sách được tuyển chọn nơi bạn có thể tìm thấy các gói tốt. Những cái tôi thường sử dụng là

  1. Con trăn tuyệt vời. đây là danh sách các gói được chia thành các danh mục (e. g. Phân tích dữ liệu, Trực quan hóa dữ liệu, Cơ sở dữ liệu, Trình điều khiển cơ sở dữ liệu, Ánh xạ quan hệ đối tượng, v.v. ). Tôi thường duyệt danh mục mà tôi quan tâm và xem xét các gói được đề xuất. Khi tôi đã chọn 2/3 gói từ danh sách Awesome Python, tôi cũng xem Awesome Python — Python Libhunt nơi có một vài chỉ số tốt về chất lượng của gói như mức độ phổ biến, sao Github, lần cam kết cuối cùng, v.v.
  2. từ Hướng dẫn về Python của The Hitchhiker. nó cung cấp cho bạn một số dấu hiệu về các công cụ và mô-đun dựa trên các tình huống khác nhau

Lựa chọn thứ ba. Google và Diễn đàn cộng đồng

Mặc dù sự cám dỗ đầu tiên của mọi người là Google những gì bạn đang tìm kiếm, nhưng tôi tin rằng điều này chỉ nên được thực hiện sau khi tham khảo Thư viện tiêu chuẩn Python và danh sách được tuyển chọn

Nếu không, bạn có thể gặp rủi ro khi (1) cài đặt một mô-đun vô dụng (hãy nhớ rằng “đơn giản tốt hơn phức tạp” — quy tắc số 3 của ) hoặc (2) kết thúc bằng các giải pháp dành riêng cho câu hỏi

Mặt khác, một ý tưởng hay là chọn ứng viên của bạn trước rồi tìm kiếm trên các diễn đàn cộng đồng để có thêm thông tin về mức độ phổ biến, cách sử dụng và các lỗi có thể xảy ra của gói. Tất nhiên, ngay cả khi bạn không biết mình đang tìm gì hoặc chưa tìm thấy bất kỳ gói khả thi nào, bạn có thể bỏ qua bước 1 và 2 và trực tiếp sử dụng Google

Trong số các kết quả tìm kiếm vô tận, tôi thường có xu hướng ưu tiên các trang web này

  1. tràn ngăn xếp
  2. Reddit (diễn đàn Python)
  3. tin tặc. bạn có thể tìm kiếm nội dung của nó bằng liên kết này
  4. Twitter (mọi người nói về các gói hàng trên Twitter — 🤷‍♀️)

Lựa chọn thứ tư. Kho lưu trữ Python chính thức — PyPI

Một tùy chọn khả thi khác là tìm kiếm PyPI (Chỉ mục gói Python) là kênh Python chính thức để tải lên các gói và phân phối chúng trên cộng đồng. Nếu bạn truy cập https. //pypi. org, bạn sẽ tìm thấy hộp tìm kiếm nơi bạn có thể viết một số từ khóa

Ngoài ra còn có một chức năng duyệt dự án cho phép bạn lọc từ danh sách các bộ phân loại

Khi bạn tìm thấy gói bạn muốn tải xuống, bạn có thể mở thiết bị đầu cuối của mình và viết pip install <package> e. g. pandas0

Về cơ bản, đây là cách tiêu chuẩn để tải xuống bất kỳ gói nào. Hãy nhớ rằng lệnh pandas1 đơn giản sẽ cài đặt gói trong môi trường toàn cầu của bạn. Một ý tưởng tốt hơn là trước tiên hãy tạo một môi trường ảo, kích hoạt nó, rồi chạy lệnh trên (có thể chỉ định phiên bản của gói bạn muốn cài đặt). nhưng đây là một câu chuyện khác

Hạn chế chính của việc sử dụng PyPI

  1. Không có đánh giá mã → bất kỳ ai cũng có thể tải lên gói của nó, vì vậy bạn nên cẩn thận với những gì bạn cài đặt
  2. Hộp tìm kiếm trả về rất nhiều kết quả (và không phải lúc nào cũng phù hợp)

Vì những lý do này, mặc dù PyPI là kho lưu trữ chính thức, nhưng tôi thường không tìm kiếm nhiều từ đây

Các yếu tố cần xem xét khi đánh giá một gói

Khi bạn đã chọn một số ứng viên, một số yếu tố bạn nên xem xét để thu hẹp lựa chọn của mình là