2010-02-21 10 views
5

Tôi muốn sử dụng xây dựng để quản lý phụ thuộc và tôi nghe phân phối là cách tốt mới để quản lý cài đặt dự án của bạn.Làm cách nào để bắt đầu với zc.buildout và Phân phối?

Tuy nhiên, các hướng dẫn dễ dàng để bắt đầu có vẻ mỏng trên mặt đất. Điều quan trọng nhất mà tôi từng thấy là số Developing Django apps with zc.buildout của Jacob Kaplan-Moss (trường hợp sử dụng của tôi là một ứng dụng web), nhưng điều đó vẫn không rõ ràng về những gì mà mỗi phần của chuỗi đó thực hiện, và thực hành tốt nhất là gì.

Tôi làm cách nào để thực hiện công cụ này? Tôi muốn làm mọi thứ đúng.

Trả lời

6

Tôi vừa mới bắt đầu ghi lại toàn bộ chuỗi công cụ tại http://reinout.vanrees.org/weblog/tags/softwarereleasesseries.html (2010-02-25: vẫn phải viết bản xây dựng và bài viết viết tắt).

Ý tưởng chuỗi công cụ cơ bản: sử dụng công cụ thiết lập để gói mã python của bạn. Giống như bài viết "phát triển ứng dụng django" bạn đề cập: mọi ứng dụng đều là gói riêng của nó. Đặt mã của bạn vào một thư mục và thêm một setup.py. Setup.py chứa số phiên bản, tên, phụ thuộc và như vậy và bạn có thể chạy nó để tạo một dự án của bạn-0.1.tar.gz, ví dụ.

Tải xuống mọi thứ ("easy_install xyz") nhanh chóng tạo ra một mớ hỗn độn hoàn toàn và hoàn toàn trong trang web của hệ thống python của bạn. Có lẽ với các phiên bản không tương thích. Buildout (và ví dụ virtualenv) cung cấp cho bạn một môi trường bị cô lập: các gói đã cài đặt chỉ được cài đặt cục bộ cho virtualenv/buildout đó.

Phần 2: bạn muốn phiên bản nào? Để có được bất kỳ biện pháp lặp lại và độ tin cậy, bạn đã có thể kiểm soát các phiên bản bạn sử dụng ("Django 1.0 hoặc 1.1?"). Buildout cho phép điều đó.

+0

+1 cho liên kết đến chuỗi phát hành phần mềm của bạn. (Và tiếp tục viết! :)) –

+0

Một lưu ý phụ về sự khác biệt: virtualenv cho phép bạn thiết lập mọi thứ như thể bạn đang ở trong một env bị cô lập. và hoạt động bình thường mà không gây rối với hệ thống toàn cầu. Buildout cài đặt mọi thứ cục bộ và thay đổi đường dẫn đến các gói nội bộ. Cả hai đều làm việc tốt. – Liorsion

+0

+1 để ghi lại tài liệu. – BenDundee

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