Python xác định gói
Gói Python là tập hợp các mô-đun có mục đích chung. Các thư mục gói phải có một tệp đặc biệt có tên là $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py1. (Kể từ Python 3. 3, $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py1 không còn cần thiết để xác định các thư mục gói. ) Mô-đun Python là một tệp Python Show Khi chúng tôi xử lý các dự án lớn chứa hàng trăm hoặc hàng nghìn mô-đun, việc sử dụng các gói là rất quan trọng. Ví dụ: chúng ta có thể đặt tất cả các mô-đun liên quan đến cơ sở dữ liệu trong gói cơ sở dữ liệu và mã giao diện người dùng trong gói ui Các gói tích hợp có sẵn trong các thư mục được xác định trước; Các gói của bên thứ ba được cài đặt vào các thư mục được xác định trước, chẳng hạn như $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py5 trên Debian Linux hoặc $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py6 trên Windows Các gói Python được quản lý bằng trình quản lý gói Python $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py7 $ sudo pip3 install arrow Chẳng hạn, thư viện mũi tên được cài đặt bằng lệnh trên ________số 8Để gỡ cài đặt mũi tên, chúng tôi sử dụng lệnh trên Gói Python có __init__ trống. pyTrong ví dụ đầu tiên, chúng tôi tạo một gói đơn giản bằng Python $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py Trong thư mục làm việc hiện tại của chúng tôi, chúng tôi có một thư mục $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py8 và một tập lệnh $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py9. $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py8 chứa tệp $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py1, đánh dấu thư mục $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py8 là thư mục góiquảng cáo Thư mục $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py8 có hai tệp. tệp $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py1 biến các hằng thành một thư mục gói Python và $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py75 là một mô-đun Python $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py1 trống. Nó có thể chứa một số mã nhưng nó cũng có thể trống $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py7 Trong mô-đun $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py75, chúng tôi có định nghĩa về hàm $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py78 $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py2 Trong chương trình $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py9, chúng tôi nhập hàm ________ 220 từ mô-đun ________ 221. Tên mô-đun và tên gói được phân tách bằng ký tự dấu chấm Trong ví dụ tiếp theo, chúng tôi có một số mã trong tệp $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py1 $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py Chúng tôi có cùng cấu trúc thư mục $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py8 Trong tệp $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py1, chúng tôi nhập hàm $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py20. Do đó, chúng tôi không phải chỉ định tên mô-đun khi chúng tôi tham khảo hàm $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py20 từ gói $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py8 $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py7 Trong mô-đun $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py75, chúng tôi có định nghĩa về hàm $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py78 $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py6 Trong chương trình $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py9, chúng ta nhập hàm $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py20. Lần này chúng tôi đã bỏ qua tên mô-đun Gói Python không có __init__. pyKể từ Python 3. 3, có thể xác định các thư mục gói mà không cần sử dụng tệp $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py1 $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py0 Trong thư mục làm việc hiện tại của chúng tôi, chúng tôi có một thư mục $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py2 và một tập lệnh $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py3 $ sudo pip3 uninstall arrow0 Mô-đun $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py4 có hai bộ dữ liệu $ sudo pip3 uninstall arrow1 Trong tập lệnh $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py3, chúng tôi nhập các bộ dữ liệu và in chúng ra thiết bị đầu cuốiQuảng cáo $ sudo pip3 uninstall arrow2 Mũi tên là thư viện của bên thứ ba để làm việc với ngày và giờ trong Python $ sudo pip3 uninstall arrow3 Thư viện được cài đặt trong thư mục mũi tên, bên dưới $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py6 trong Debian Linux. Thư viện được cài đặt với trình quản lý gói $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py7. Như chúng ta có thể thấy, thư viện là tập hợp các mô-đun Python Gói con PythonChúng ta cũng có thể tạo các gói con. Để truy cập các gói con, chúng tôi sử dụng toán tử dấu chấm $ sudo pip3 uninstall arrow4 $ sudo pip3 uninstall arrow5 Đây là tệp $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py1 trong thư mục $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py2. Chúng tôi nhập bộ dữ liệu $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py80 $ sudo pip3 uninstall arrow6 Đây là mô-đun $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py4 trong thư mục $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py2. Nó chứa bộ dữ liệu $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py80 $ sudo pip3 uninstall arrow7 Tệp $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py1 trong gói số có một dòng này $ sudo pip3 uninstall arrow8 Mô-đun số nguyên xác định một bộ gồm bảy số nguyên. Tuple này sẽ được truy cập từ tập lệnh $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py3 $ sudo pip3 uninstall arrow9 Đây là chương trình $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py3. Chúng tôi nhập bộ dữ liệu $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py80 từ gói $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py2 và bộ dữ liệu $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py89 từ gói con $ tree . ├── mymath │ ├── __init__.py │ └── mfuns.py └── myprog.py70 Làm cách nào để viết một gói bằng Python?Tạo gói
. py trong thư mục include __init__.py file in the directory . Bạn có thể viết mã bên trong hoặc để trống tùy ý. Nó không làm phiền Python. Tạo một thư mục và bao gồm một __init__. py trong đó để nói với Python rằng thư mục hiện tại là một gói.
__ gói __ là gì?Tất cả những gì tôi muốn biết là __package__ chính xác nghĩa là gì
. Có ba loại giá trị có thể có cho __package__ Tên gói (một chuỗi) Một chuỗi trống. the mechanism that enables explicit relative imports. There are three possible categories of values for __package__ A package name (a string) An empty string.
Làm cách nào để tạo gói pip Python?Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách tạo gói Python/pip. . Thiết lập dự án của bạn. Tạo một gói nói, dokr_pkg. . Biên soạn gói của bạn. Đi vào thư mục gói của bạn và thực hiện lệnh này. thiết lập python. py bdist_wheel. . Cài đặt trên máy cục bộ của bạn. . Tải lên trên pip. . Phần kết luận Làm cách nào để cài đặt gói tùy chỉnh trong Python?Để cài đặt gói bao gồm thiết lập. py, hãy mở lệnh hoặc cửa sổ đầu cuối và. . cd vào thư mục gốc nơi thiết lập. py được đặt đi vào. thiết lập trăn. cài đặt py |