2008-09-25 23 views
9

Tôi viết tấn tập lệnh python và tôi thấy mình đang sử dụng lại nhiều mã mà tôi đã viết cho các dự án khác. Giải pháp của tôi là đảm bảo mã được phân tách thành các mô-đun/gói logic (đây là một gói đã cho). Tôi sau đó làm cho họ setuptools-nhận thức và xuất bản chúng trên PyPI. Điều này cho phép các tập lệnh khác của tôi luôn có mã cập nhật nhất, tôi có cảm giác mờ ấm vì tôi không lặp lại bản thân và sự phát triển của tôi nói chung là ít phức tạp hơn. Tôi cũng cảm thấy thoải mái rằng có thể có ai đó ở đó tìm thấy mã của tôi tiện dụng cho những gì họ đang làm việc, nhưng chủ yếu vì lý do ích kỷ :)Bạn quản lý các mô-đun tùy chỉnh của mình như thế nào?

Đối với tất cả pythonistas, bạn xử lý như thế nào? Bạn có sử dụng PyPI hoặc setuptools (easy_install) không? hoặc cái gì khác?

+0

@Jeremy: đây là câu hỏi và câu trả lời trong câu hỏi. Bạn nên đặt lại câu hỏi theo các thuật ngữ đơn giản, và sau đó bạn nên đặt phương thức CỦA BẠN để làm câu trả lời đầu tiên cho câu hỏi. Cách tốt nhất để quản lý các mô-đun sẽ được bỏ phiếu ở đầu ... bạn không bao giờ biết, nó có thể là của bạn. –

+0

Tôi thực sự nghĩ về điều đó ngay khi tôi đăng bài này. Tôi chắc chắn sẽ làm như vậy lần sau. –

Trả lời

1

Tôi đã làm điều tương tự. Trích xuất chức năng phổ biến, khá mã lên với tài liệu bổ sung và kiểm tra đơn vị/doctests, tạo một setup.py easyinstall, và sau đó phát hành trên PyPi. Gần đây, tôi đã tạo một đơn Google Code site nơi tôi quản lý nguồn và cập nhật wiki.

1

Loại mô-đun nào chúng ta đang nói đến ở đây? Nếu bạn đang lập kế hoạch phân phối dự án của mình cho các nhà phát triển python khác, thì setuptools rất tuyệt. Nhưng nó thường không phải là một cách rất tốt để phân phối ứng dụng cho người dùng cuối. Đặt cược tốt nhất của bạn trong trường hợp sau là điều chỉnh bao bì của bạn cho các nền tảng mà bạn phân phối nó. Chắc chắn, đó là một nỗi đau, nhưng nó làm cho cuộc sống cho người dùng cuối dễ dàng hơn nhiều.

Ví dụ, trong hệ thống Debian của tôi, tôi thường không sử dụng easy_install vì nó khó hơn một chút để trứng hoạt động tốt với trình quản lý gói. Trong OS X và cửa sổ, bạn có thể muốn gói tất cả mọi thứ lên bằng cách sử dụng py2app và py2exe tương ứng. Điều này giúp cuộc sống của người dùng cuối tốt hơn. Sau khi tất cả, họ không nên biết hoặc quan tâm những gì ngôn ngữ kịch bản của bạn được viết in Họ chỉ cần họ để cài đặt.

+0

Tôi xuất bản nội dung của mình cho PyPI chủ yếu cho bản thân mình. Tính hữu dụng của nó đối với các nhà phát triển hoặc người dùng cuối thực sự là mối quan tâm thứ cấp :) –

0

Tôi lưu trữ tất cả ngoại tuyến trong cấu trúc thư mục logic, với các mô-đun thường được sử dụng được nhóm làm tiện ích. Điều này có nghĩa là nó dễ dàng hơn để kiểm soát phiên bản nào tôi xuất bản và quản lý. Tôi cũng tự động hóa quá trình xây dựng để giải thích cấu trúc thư mục logic.

Các vấn đề liên quan