Cách đóng gói tập lệnh python
Gói là một thùng chứa các chức năng khác nhau để thực hiện các tác vụ cụ thể. Ví dụ: gói Show
Khi làm việc trên các dự án lớn, chúng ta phải xử lý một lượng lớn mã và việc viết mọi thứ cùng nhau trong cùng một tệp sẽ khiến mã của chúng ta trông lộn xộn. Thay vào đó, chúng ta có thể tách mã của mình thành nhiều tệp bằng cách giữ mã có liên quan với nhau trong các gói Bây giờ, chúng ta có thể sử dụng gói bất cứ khi nào chúng ta cần trong các dự án của mình. Bằng cách này, chúng tôi cũng có thể sử dụng lại mã của mình Cấu trúc mô hình gói trong lập trình PythonGiả sử chúng ta đang phát triển một trò chơi. Một tổ chức có thể có của các gói và mô-đun có thể như trong hình bên dưới Cấu trúc mô hình gói trò chơiGhi chú. Một thư mục phải chứa một tệp có tên Nhập mô-đun từ một góiTrong Python, chúng ta có thể nhập các mô-đun từ các gói bằng cách sử dụng dấu chấm (. ) nhà điều hành Ví dụ: nếu chúng ta muốn nhập mô-đun
Bây giờ, nếu mô-đun này chứa một hàm có tên là 0, chúng ta phải sử dụng tên đầy đủ để tham chiếu nó
Nhập không có tiền tố góiNếu cấu trúc này có vẻ dài dòng, chúng ta có thể nhập mô-đun mà không cần tiền tố gói như sau
Bây giờ chúng ta có thể gọi hàm đơn giản như sau
Chỉ nhập chức năng bắt buộcMột cách khác để chỉ nhập chức năng được yêu cầu (hoặc lớp hoặc biến) từ một mô-đun trong một gói sẽ như sau
Bây giờ chúng ta có thể gọi trực tiếp chức năng này
Mặc dù dễ dàng hơn nhưng phương pháp này không được khuyến khích. Sử dụng không gian tên đầy đủ để tránh nhầm lẫn và ngăn hai tên định danh giống nhau va chạm Trong khi nhập các gói, Python tìm trong danh sách các thư mục được xác định trong 1, tương tự như đối với Hướng dẫn với mẫu sẵn sàng chạy, mô tả cách chuyển đổi Dự án Python thành Gói có sẵn trong Chỉ mục gói PythonẢnh của Claudio Schwarz trên BaptCó thể xảy ra trường hợp khi bạn tạo một dự án Python mới, bạn phải sử dụng lại một số mã trước đó đã được tổ chức tốt. Vì vậy, bạn có thể chuyển mã được tổ chức tốt trước đó thành một gói
Một gói phải được ghi chép đầy đủ để những người khác có thể khai thác nó. Vì lý do này, mọi lớp hoặc phương thức phải được ghi lại, thông qua các chuỗi tài liệu, như được giải thích trong Trong hướng dẫn này, tôi mô tả cách chuyển đổi một dự án Python đơn giản thành Gói, có sẵn trong Chỉ mục gói Python Mẫu cho dự án có thể được tải xuống từ kho lưu trữ này Tổ chức các tập tin nguồnBắt đầu từ thư mục gốc ( from numpy.random import seed5 ), đại diện cho tên của gói, các tệp nguồn phải được đặt trong thư mục có tên là from numpy.random import seed6 package_template/ Thư mục from numpy.random import seed6 có thể chứa một hoặc nhiều thư mục con, mỗi thư mục đại diện cho một gói. Trong mẫu trên, có hai gói, from numpy.random import seed8 và from numpy.random import seed9. Mỗi gói phải chứa một tệp trống, được gọi là def p2_diff(a,b): 0, chỉ đơn giản nói với Python rằng thư mục chứa các tập lệnh có thể được đưa vào các tập lệnh khác. Ngoài ra, mỗi thư mục phải chứa tất cả các tệp Python cần thiếtTrong ví dụ được xem xét, from numpy.random import seed8 chứa một tệp, có tên là def p2_diff(a,b): 2, thực hiện một hàm giả, tính toán tổng giữa một số được truyền dưới dạng đối số và một số ngẫu nhiên do hàm tạo ra________số 8_______Hàm def p2_diff(a,b): 3 nhận đầu vào là các tham số sau
Gói thứ hai, tên là from numpy.random import seed9 chứa một tệp có tên là def p2_diff(a,b): 7, thực hiện một chức năng tương tự, được gọi là def p2_diff(a,b): 8, trả về sự khác biệt giữa hai số được truyền dưới dạng tham sốdef p2_diff(a,b): Khi bạn cài đặt toàn bộ gói, bạn sẽ có thể đưa hàm def p2_diff(a,b): 3 vào một tập lệnh như saufrom package1.p1 import p1_sum Tạo tệp đóng góiBây giờ, tôi có thể thêm vào dự án của mình các tệp cần thiết để chuyển đổi nó thành thư viện. Trong thư mục gốc, tôi nên thêm ít nhất các tệp sau
ĐỌC. mdĐỌC. md chứa tài liệu cơ bản cho gói, được viết bằng ngôn ngữ đánh dấu. Nó có thể được xây dựng nhanh chóng thông qua công cụ trực tuyến rất hữu ích này Một README rất cơ bản. tệp md có thể là tệp sau # package_template kết xuất như sau Ví dụ README (Hình ảnh của Tác giả)GIẤY PHÉPNhiều giấy phép tồn tại để phát hành phần mềm. Các loại giấy phép mở và miễn phí phổ biến nhất bao gồm
pyproject. tomlNhư đã nói, tệp này chứa các lệnh để xây dựng gói. Đoạn mã sau đây cho thấy một ví dụ rất cơ bản về pyproject. tập tin toml [build-system]requires = [ Biến from package1.p1 import p1_sum 2 chỉ định các thư viện cần thiết để xây dựng gói. Điều này KHÔNG bao gồm thư viện được gói khai thác (i. e. các thư viện được nhập trong các tập lệnh đơn)Ví dụ trước xác định rằng cơ chế được sử dụng để xây dựng gói là from package1.p1 import p1_sum 3cài đặt. cfgĐoạn mã sau hiển thị một ví dụ cơ bản về tệp from package1.p1 import p1_sum 1[metadata]name = package_template_YOUR-USERNAME-HERE Phần from package1.p1 import p1_sum 5 chứa một số thông tin cơ bản, liên quan đến tên của gói, tác giả, phiên bản và những nội dung tương tự khác. Để phát hành phiên bản mới của gói, số phiên bản trong phần này có thể được thay đổiPhần tùy chọn chứa thông tin về phiên bản Python (≥3. 6 trong ví dụ trên) và các thành phần phụ thuộc (được xác định bằng từ khóa from package1.p1 import p1_sum 6Để biết thêm chi tiết, liên quan đến tệp from package1.p1 import p1_sum 1, bạn có thể xem trang nàyTạo phân phốiBây giờ tôi có thể tạo bản phân phối. Tôi phải cài đặt gói from package1.p1 import p1_sum 8, nếu tôi chưa cài đặt gói nàypip install build Sau khi cài đặt, tôi vào thư mục gốc của gói và chạy lệnh sau python -m build Thao tác này có thể cần một chút thời gian. Sau khi hoàn thành, một thư mục mới xuất hiện trong thư mục gốc cục bộ của tôi, được gọi là from package1.p1 import p1_sum 9, chứa hai tệp chínhpackage_template-YOUR-USERNAME-HERE-0.0.1.tar.gzpackage_template_YOUR_USERNAME_HERE-0.0.1-py3-none-any.whlTải gói lên kho lưu trữ PIP thử nghiệm Gói đã sẵn sàng để được triển khai trong kho lưu trữ PIP chính thức. Tuy nhiên, trước khi triển khai nó, tôi thực sự khuyên bạn nên kiểm tra nó, trong kho lưu trữ PIP thử nghiệm, đây không phải là kho lưu trữ chính thức mà chỉ là kho lưu trữ thử nghiệm Đầu tiên, tôi phải tạo một tài khoản mới trong Kho lưu trữ thử nghiệm, theo liên kết này. Sau khi tạo và kích hoạt tài khoản mới, tôi có thể đăng nhập vào hồ sơ của bạn và tạo mã thông báo. Tôi phải lưu mã thông báo này ở nơi khác, vì bạn sẽ không thấy nó nữa Bây giờ, tôi đã sẵn sàng tải gói lên Kho lưu trữ thử nghiệm. Tôi cài đặt gói # package_template0, sẽ được sử dụng để tải lên from numpy.random import seed0 Sau đó, tôi nhập thư mục gốc của thư mục gói của mình và tôi chạy lệnh này from numpy.random import seed1 Lệnh này sẽ nhắc nhập tên người dùng và mật khẩu. Sử dụng # package_template1làm tên người dùng và mã thông báo của bạn làm mật khẩu Khi quy trình hoàn tất, một URL sẽ xuất hiện, chỉ định nơi gói của bạn được cài đặt Cài đặt gói đã triển khaiTrước khi cài đặt gói triển khai mới, tôi thực sự khuyên bạn nên tạo một env ảo. Bạn có thể làm theo hướng dẫn nhanh này để xây dựng một env ảo mới Gói đã triển khai có thể được cài đặt thông qua lệnh sau from numpy.random import seed2 Bây giờ bạn có thể tạo tập lệnh Python mới để khai thác gói đã triển khai mới from numpy.random import seed3Triển khai cuối cùng Sau khi kiểm tra tính chính xác của gói, tôi có thể tải nó lên kho lưu trữ Chỉ mục gói Python
Tôi phải đăng ký trang web Python Package Index chính thức. Sau đó, tôi chạy lệnh sau, từ thư mục gốc của gói của tôi from numpy.random import seed4 Tôi nhập thông tin đăng nhập của mình và nhấn enter. Sau khi thủ tục hoàn tất, gói đã sẵn sàng để mọi người trên thế giới cài đặt. ) Tóm lượcTrong hướng dẫn này, tôi đã minh họa cách chuyển đổi dự án Python thành gói Python có sẵn cho tất cả cộng đồng Python trong Chỉ mục gói Python Thủ tục khá đơn giản. chỉ cần tổ chức thư mục dự án thành một cấu trúc nhất định và chạy một số lệnh Python đơn giản để xây dựng bản phân phối là đủ Làm cách nào để biến tập lệnh Python thành gói?Để chuyển đổi mô-đun Python thành gói Python . Chọn một. tập tin py Chọn tái cấu trúc. Chuyển đổi sang Gói Python Kiểm tra dự án. gói có tên là mô-đun đã chuyển đổi được tạo; . tệp py chứa tất cả mã từ. tập tin py Làm cách nào để đóng gói mã Python dưới dạng thư viện?Cách tạo thư viện Python . Bước 1. Tạo một thư mục mà bạn muốn đặt thư viện của mình. . Bước 2. Tạo một môi trường ảo cho thư mục của bạn. . Bước 3. Tạo cấu trúc thư mục. . Bước 4. Tạo nội dung cho thư viện của bạn. . Bước 5. Xây dựng thư viện của bạn Làm cách nào để đóng gói mã Python để triển khai?Để triển khai, bạn cần tải cấu phần phần mềm này lên máy sản xuất của mình. Để cài đặt nó, chỉ cần chạy dpkg -i my-package. deb . Virtualenv của bạn sẽ được đặt tại /usr/share/python/ và bất kỳ tệp tập lệnh nào được xác định trong thiết lập của bạn. py sẽ có sẵn trong thư mục bin đi kèm.
Làm cách nào chúng ta có thể tạo một gói bằng Python?Python - Gói . Tạo một thư mục mới có tên D. \Ứng dụng của tôi Bên trong MyApp , tạo một thư mục con với tên 'mypackage' Tạo một __init__ trống. py trong thư mục mypackage Sử dụng trình chỉnh sửa nhận biết Python như IDLE, tạo mô-đun chào. py và chức năng. py với đoạn mã sau |