Tôi có thể xuất bản các dự án Python ở đâu?
Đối với nhiều kỹ sư và nhà phát triển phần mềm, việc sử dụng các thư viện tiêu chuẩn hoặc các đối tượng tích hợp sẵn là không đủ. Để tiết kiệm thời gian và tăng hiệu quả, hầu hết các nhà phát triển xây dựng dựa trên công việc được thực hiện bởi những người khác. Bất kể vấn đề mã hóa là gì, có khả năng một lập trình viên khác đã tạo ra giải pháp cho vấn đề đó. Thường không cần lặp lại quy trình giải quyết vấn đề. Nguyên tắc này được gọi là Đừng lặp lại chính mình hoặc DRY Show Mã vượt ra ngoài thư viện tiêu chuẩn thường được chia sẻ giữa các cá nhân, nhóm và thậm chí toàn bộ cộng đồng viết mã. Nếu bạn đã giải quyết được vấn đề mã hóa, bạn có thể cung cấp công khai vấn đề đó dưới dạng cơ sở mã nguồn mở để các nhà phát triển khác hưởng lợi từ đó. Các bộ sưu tập mã này được gọi là các gói Trong hướng dẫn này, chúng ta sẽ xây dựng một gói Python đơn giản và tạo một đường dẫn tích hợp liên tục (CI) cho nó Nếu bạn đang sử dụng một ngôn ngữ lập trình phổ biến như JavaScript hoặc Python, sẽ có sẵn các công cụ để xuất bản các gói mã nguồn mở của bạn. Đối với JavaScript, bạn có thể sử dụng Trình quản lý gói nút (NPM). Đối với Python, bạn có thể sử dụng Chỉ mục gói Python, còn được gọi là (PyPI). Chúng tôi sẽ sử dụng PyPI cho hướng dẫn này điều kiện tiên quyếtĐể hoàn thành hướng dẫn này, bạn sẽ cần
Ghi chú. Cả hai kiểm tra. pypi. tổ chức và pypi. org yêu cầu bạn xác minh địa chỉ email của mình. Bạn sẽ không thể xuất bản một gói mà không xác nhận. Các bước sau trong hướng dẫn này yêu cầu tên người dùng và mật khẩu để kiểm tra. pypi. tổ chức và pypi. tổ chức giống nhau. Ví dụ, THÊM VÍ DỤ Tạo gói PythonNhư tôi đã đề cập trong phần giới thiệu, nếu chức năng bạn cần không có trong thư viện Python tiêu chuẩn, thì rất có thể có một gói cung cấp chức năng đó. Có hàng trăm nghìn gói có sẵn trên pypi. tổ chức. Bạn có thể tìm kiếm chức năng mình cần hoặc chọn từ các gói đang thịnh hành hoặc mới Nhiệm vụ đầu tiên của chúng tôi là tạo một gói chuyển đổi đơn giản có thể chứng minh chức năng của gói trong một khoảng thời gian ngắn. Gói chúng tôi tạo sẽ cho phép lập trình viên chuyển đổi giá trị cho
Sử dụng quy trình bảo trì gói điển hình làm mô hình của chúng tôi, chúng tôi sẽ cung cấp các bản cập nhật theo thời gian để mở rộng tính hữu dụng của gói và cải thiện tính bảo mật. Chúng tôi sẽ sử dụng nhật ký thay đổi để theo dõi các cập nhật và thông báo cho người dùng về các thay đổi. Thêm về điều đó sau Cấu trúc dự ánChọn một vị trí trong hệ thống của bạn và tạo một dự án
Dự án có
Đảm bảo rằng tên thư mục mô-đun/thư viện là một tên duy nhất không được sử dụng bởi gói hiện có trong bài kiểm tra Chỉ mục gói Python Kiểm tra. pypi. org hoặc Chỉ mục gói Python pypi. org Thực hiện các truy vấn tìm kiếm để xác nhận tính khả dụng của các tên bạn muốn sử dụng Với dự án được tạo và đặt tên, chúng ta có thể bắt đầu xây dựng chức năng để chuyển đổi nhiệt độ từ 7 sang 8 và ngược lại). Logic sẽ được chứa trong tệp 6Sao chép mã này và dán vào tệp 0
Tiếp theo, sao chép mã này vào tệp 1
Sao chép mã này vào 2, sau đó cập nhật 3 và 4 bằng thông tin của bạn 4Để kết thúc bước này, có thể sử dụng GitHub. mẫu gitignore cho Python. Sao chép nội dung vào tệp 5 của dự án nàyMã này phải tương tự như thế này Sao chép nó bằng cách chạy 6Xây dựng các tập tin góiTrước khi chúng tôi bắt đầu bước này, tôi nên đề cập rằng tôi đang sử dụng Python3. Tùy thuộc vào cài đặt Python của bạn, bạn có thể cần sử dụng 6 thay vì 7, như minh họa trong ví dụTrong thiết bị đầu cuối của bạn (ở thư mục gốc của dự án), hãy chạy 9Lệnh này tạo phân phối nguồn và bánh xe có thể chia sẻ có thể được xuất bản trên pypi. tổ chức Để kiểm tra điều này, hãy tạo một môi trường Python ảo Ghi chú. Sử dụng một vị trí khác để tránh xung đột tên giữa các mô-đun Sau đó, cài đặt gói 5 bằng phân phối bánh xe. Tùy thuộc vào cài đặt Python của bạn, bạn có thể cần sử dụng 9Chạy 2Tạo một tệp tập lệnh python có tên 40 và nhập 4Để kiểm tra, hãy chạy tập lệnh trong khi vẫn ở trong môi trường Python ảo Gói Python của chúng tôi đã sẵn sàng để xuất bản Xuất bản gói PythonTrong bước này của hướng dẫn, chúng ta sẽ thực hiện theo quy trình công việc mà người tạo và bảo trì gói ngoài đời thực có thể sử dụng. Đầu tiên, trước tiên chúng tôi sẽ xuất bản gói của mình để kiểm tra. pypi. org để đảm bảo mọi thứ đang hoạt động. Khi chúng tôi sẵn sàng xuất bản cho người dùng gói của mình, chúng tôi sẽ chuyển sang pypi. tổ chức Cơ quan đóng gói Python (PYPA) có một gói tiện lợi để trợ giúp việc này có tên là 41. Chúng tôi sẽ cài đặt 41 sau đó xuất bản để kiểm tra. pypi. tổ chức. Bạn sẽ được yêu cầu nhập thông tin đăng nhập cho trang webTrong thiết bị đầu cuối của bạn, điều hướng đến thư mục gốc của gói của bạn và chạy 7Trong một môi trường ảo Python riêng biệt, hãy cài đặt gói. Khi bạn chạy 43, 44 tìm kiếm các tệp gói trong Chỉ mục gói Python chính thức, trên pypi. tổ chứcChạy tập lệnh 40 1Đây là cách tôi thực hiện Thành công. Bây giờ chúng tôi có thể tự động hóa quy trình xuất bản với CircleCI Tự động xuất bản gói với CircleCIKhông có gì bí mật rằng CircleCI rất tuyệt vời để tự động hóa các tập lệnh. Hóa ra nó cũng rất tuyệt để tạo ra một quy trình có thể lặp lại để xuất bản gói. Chúng tôi sẽ tạo ra một quy trình có thể
Để bắt đầu, hãy tạo một thư mục có tên 46. Trong đó, tạo một tệp và đặt tên là 47. Trong 48, nhập 0Trong khi bạn đang ở trong môi trường ảo Python chứa gói 5 của chúng tôi, hãy chuyển đến thư mục gốc. Pip cài đặt 60, sau đó chạy lệnh 60 1Cả hai bài kiểm tra sẽ vượt qua thành công Tiếp theo, thêm tệp cấu hình CircleCI vào dự án. Tạo một thư mục có tên 62. Trong thư mục mới, tạo một tệp có tên 63. Trong 64, sao chép và dán 2Tệp cấu hình này hướng dẫn đường ống cài đặt các phụ thuộc cần thiết, chạy thử nghiệm và xuất bản gói. Phần 65 của cấu hình chỉ định 66, trình tự các công việc sẽ được thực hiện và các phần phụ thuộc của chúngVí dụ: công việc 67 và 68 không thể chạy nếu công việc 69 bị lỗi. Các công việc 67 và 68 chỉ chạy trong các chi nhánh của ________ 192 và ________ 193, tương ứngKết nối dự án với CircleCIBắt đầu bằng cách đẩy dự án của bạn lên GitHub Kho lưu trữ của bạn phải tương tự như thế này Bây giờ, hãy truy cập trang Thêm dự án trên bảng điều khiển CircleCI. Nhấp vào Thiết lập dự án Click Use Existing Config (vì chúng ta đã có file config riêng). Trong phương thức xuất hiện, nhấp vào Bắt đầu xây dựng CircleCI chọn nhánh mặc định, vì vậy nếu bạn sử dụng nhánh không có tệp 64, bạn sẽ gặp lỗi xây dựng. Công việc 95 sẽ vượt qua, nhưng nếu bạn đang ở trong nhánh 93 hoặc 92, thì quá trình xây dựng sẽ thất bại. Đó là bởi vì các công việc 67 và 68 chưa thể chạyMặc dù thông tin đăng nhập PyPI Kiểm tra đã được mong đợi khi chúng tôi xuất bản gói bằng cách sử dụng 41, nhưng chúng tôi không thể tương tác với thiết bị đầu cuối khi nó đang chạy lệnh trong quy trình. Để cung cấp các thông tin đăng nhập này, chúng tôi có thể thêm cờ vào lệnh. 21. Tuy nhiên, vì tệp cấu hình được Git theo dõi và kho lưu trữ Git của chúng tôi là công khai nên việc sử dụng các cờ sẽ là một rủi ro bảo mật. Chúng ta có thể tránh rủi ro này bằng cách tạo các biến môi trườngTạo biến môi trườngTrong khi vẫn đang sử dụng dự án CircleCI ( 4), hãy nhấp vào Cài đặt dự án ở phần trên cùng bên phải của trangChọn Biến môi trường từ menu bên phải. Sau đó, nhấp vào Thêm biến môi trường Nhập các cặp khóa-giá trị của 23 và 24. Đây là kết quả mong đợiBước tiếp theo của chúng tôi là tạo nhật ký thay đổi Thêm nhật ký thay đổiTrong dự án cục bộ của bạn, hãy tạo một tệp có tên 25 và nhập 3Để đảm bảo quá trình xây dựng thành công, chúng tôi cũng cần nâng cấp phiên bản từ 2 lên 27 để khớp với nhật ký thay đổiGhi chú. Nếu bạn không sửa đổi phiên bản, công việc xuất bản sẽ không thành công vì bạn không thể xuất bản cùng một phiên bản hai lần Cam kết các thay đổi và đẩy lên GitHub để kích hoạt bản dựng Cập nhật góiĐể mở rộng chức năng của gói, bạn có thể tạo một nhánh khác và cập nhật nó. Sau đó
Khi bạn đã xây dựng thành công, hãy tạo Yêu cầu kéo GitHub (PR) tới nhánh 92. Nếu nó có vẻ tốt, hãy hợp nhất nó. Khi quá trình xây dựng đó thành công, hãy tạo PR cho nhánh 93, xem xét và hợp nhấtHãy xem các yêu cầu kéo ví dụ này
Gói trên Test PyPI và trên PyPI có chức năng bổ sung là 45 từ km sang dặm và ngược lại. Các PR đã được hợp nhất khi quá trình xây dựng thành côngPhần kết luậnBạn đã có nó, một quy trình thành công, có thể lặp lại phù hợp với trình bảo trì gói Python được kích hoạt bởi CI/CD. Chúng tôi đã thiết lập dự án gói Python, tạo bánh xe Python và cài đặt gói bằng tệp 29. Chúng tôi đã xuất bản gói từ một máy cục bộ và sau đó tự động hóa quy trình bằng CircleCItiếp tục xây dựng Stanley là Kỹ sư phần mềm và Người viết quảng cáo kỹ thuật, người đã đảm nhiệm nhiều vai trò khác nhau, bao gồm lãnh đạo nhóm kỹ thuật và tham gia cộng đồng. Anh ấy mô tả mình là một digerati (biết chữ trong không gian kỹ thuật số) |