Phát triển gói Python của riêng bạn
Trong bài viết này, chúng ta sẽ tìm hiểu cách phát triển gói trong Python. Các gói không là gì ngoài một tập hợp các chương trình được thiết kế để thực hiện một (các) nhiệm vụ nhất định. Các gói có hai loại, cụ thể là Show
Tạo một góiĐầu tiên, chúng ta cần nghĩ ra cách cấu trúc mã của mình để những người khác có thể truy cập các chức năng mã của chúng ta. Trong Python, để tạo một gói, chúng ta cần thêm __init__. py vào thư mục. Ở đây, chúng ta sẽ tạo một gói có tên là test_package
Python3package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files1 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files2 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files3 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files4 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files5 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files6 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files7 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files8 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files9 pip3 install setuptools wheel0 pip3 install setuptools wheel1 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files8 pip3 install setuptools wheel3 pip3 install setuptools wheel4
Python3package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files1 pip3 install setuptools wheel6 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files3 pip3 install setuptools wheel8 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files5 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files90 pip3 install setuptools wheel0 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files92 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files93 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files94 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files95 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files94 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files93 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files98 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files99 pip3 install setuptools wheel0 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files01 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files93 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files03 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files04 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files05
package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files5 Để kiểm tra, chỉ cần gõ python3 run. py. Và đầu ra của chúng tôi sẽ như sau Theo cách này, chúng ta có thể tạo nhiều chương trình phức tạp và sử dụng chúng trong các mã khác Tải lên gói của chúng tôiBây giờ, hãy xem cách chúng tôi có thể chuẩn bị gói của mình để triển khai trên PyPI. Chúng tôi cần một số tệp bổ sung trong thư mục gói của mình, như README. MD, GIẤY PHÉP và thiết lập. py. Mã của chúng tôi nên được cấu trúc như dưới đây package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files Đảm bảo xóa lần chạy đã tạo trước đó. py, nó chỉ dành cho thử nghiệm thủ công. Đối với GIẤY PHÉP, chúng tôi khuyên bạn nên sử dụng GIẤY PHÉP MIT vì nó mang lại sự linh hoạt nhất. Chúng ta có thể đọc về nhiều loại giấy phép trực tuyến Tiếp theo, tạo README. tập tin md. Về cơ bản, nó sẽ chứa một mô tả đầy đủ về gói. Nếu chúng ta chưa quen với cách viết theo phong cách markdown, chúng tôi khuyên bạn nên đọc bài viết này. Một lần, chúng tôi có README của bạn. md đã sẵn sàng, chúng ta cần viết thiết lập. py. đây là phần quan trọng nhất Python3package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files3 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files07 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files5 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files09 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files10____411 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files12 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files94 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files14 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files15 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files16______417 pip3 install setuptools wheel0 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files19 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files5 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files21 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files16 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files23____90 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files25 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files94 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files16____528____90 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files10 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files94 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files16____613____90 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files15 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files94 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files16____618 pip3 install setuptools wheel0 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files10 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files94 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files16______713____90 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files92 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files16 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files17 _______416____417____90 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files21 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files94 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files16______824____90 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files26 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files16______828 pip3 install setuptools wheel0 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files00 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files94 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files16 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files03______90 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files05 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files94 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files16______008 pip3 install setuptools wheel0 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files10 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files94 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files16______013____90 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files15 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files94 _______416____018____90 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files20 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files03 Trong đoạn mã trên, bạn cần thay đổi
Gói của chúng tôi đã sẵn sàng Đăng ký gói của chúng tôi với PyPIBây giờ chúng tôi đã phát triển gói python của mình, chúng tôi cần đăng ký gói đó trên PyPI 1. Tải lên GitHub Tạo một kho lưu trữ GitHub mới và đẩy tất cả mã của chúng tôi vào đó. Nếu bạn chưa biết cách đẩy mã lên repo GitHub, bạn có thể xem qua bài viết này. Ngoài ra, đừng quên cập nhật URL của chúng tôi trong phần thiết lập. py với URL repo GitHub mới được tạo. Repo của chúng tôi nên được truy cập công khai 2. Tạo một tài khoản trong PyPI Chúng tôi sẽ xuất bản gói trong PyPI, chúng tôi cần một tài khoản. Để làm điều đó, chỉ cần truy cập PyPI và tạo tài khoản của bạn 3. Tạo bản phân phối Lưu trữ phân phối là cần thiết để lưu trữ nó dưới dạng gói. Để tạo các gói này, chúng tôi cần cài đặt hai gói bổ sung pip3 install setuptools wheel Bây giờ chúng tôi đã cài đặt chúng, hãy chạy lệnh bên dưới để tạo tệp lưu trữ package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files9 Nó sẽ tạo các thư mục build, dist, test_package. trứng-thông tin. Bây giờ cấu trúc thư mục của bạn sẽ giống như thế này package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files0 4. Triển khai Để tải lên PyPI, chúng tôi cần cài đặt gói sợi xe package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files1 Bây giờ, hãy tải lên gói có phiên bản phù hợp được xác định trong phần thiết lập. tập tin py. Để làm như vậy, hãy chạy lệnh dưới đây package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files2 Đó là tất cả về việc phát triển và triển khai các gói trong python Sử dụng gói của chúng tôiKhi gói được phát triển, chúng ta sẽ có thể sử dụng nó phải không? . Tạo một thư mục hoàn toàn mới và tạo một môi trường ảo bên trong nó. Để như vậy, chỉ cần gõ package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files1 Bây giờ, hãy cài đặt gói mới được triển khai của bạn vào môi trường ảo. Bạn cần sử dụng pip để có thể cài đặt nó package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files1 Bây giờ, hãy xem cách chúng ta có thể sử dụng gói này trong mã của mình. ý tưởng thật đơn giản. Đây là sau khi tất cả một gói, phải không? package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files2 Bây giờ, chúng tôi có chức năng của chúng tôi. Hãy thử sử dụng nó package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files0 Đó là tất cả. Nếu chúng ta đặt tất cả lại với nhau, Python3package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files1 pip3 install setuptools wheel6 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files3 pip3 install setuptools wheel8 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files5 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files04 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files28 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files93 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files94 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files95 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files94 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files93 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files17 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files46 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files36 package-folder ├── LICENSE ├── README.md ├── setup.py └── test_package └── __init__.py 1 directory, 4 files48 |