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
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. py
Trong 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__. py
Kể 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 Python
Chú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