2012-03-15 30 views
8

Làm thế nào để bạn đóng gói một ứng dụng Python với các thiết lập để nó được cài đặt (ví dụ thông qua setup.py hoặc pip), nó đặt một tập lệnh daemon ở vị trí thích hợp, bắt đầu nó và đánh dấu nó sẽ tự động khởi động lúc khởi động?Làm thế nào để đóng gói một daemon Python với setuptools

Trong trường hợp của tôi, mã của tôi chỉ hoạt động với Linux, vì vậy tôi chỉ quan tâm đến việc cài đặt daemon trong môi trường Linux (đặc biệt là Ubuntu).

Tôi đã tìm thấy severalpostsdescribing cách tạo dễ dàng các trình tiện ích Python, nhưng dường như tôi không thể tìm thấy bất kỳ điều gì mô tả cách bạn cài đặt chúng trong môi trường sản xuất để chúng được coi là bất kỳ trình nền thông thường nào khác hoặc dịch vụ.

Tôi biết Ubuntu và một số bản phân phối khác giữ các daemon của chúng trong /etc/init.d, và tôi biết cách sử dụng setuptools để sao chép tệp vào các vị trí cụ thể trên hệ thống tệp, vì vậy sẽ an toàn để sao chép hoặc symlink tập lệnh của tôi đến /etc/init.d và sau đó chạy chkconfig để thiết lập thời gian chạy của nó, hoặc là có một cách trung lập phân phối an toàn hơn để cài đặt các trình tiện ích không?

Trả lời

3

Điều này sẽ được xử lý tốt hơn bằng cách tạo gói thích hợp cho bản phân phối (trong trường hợp của Ubuntu, .deb) vì bạn không thể đảm bảo vị trí của các tập lệnh khởi động trên các bản phân phối. Ví dụ, arch linux sử dụng /etc/rc.d/. Ngoài ra, việc sao chép vào các vị trí như vậy sẽ yêu cầu quyền truy cập root (mà tôi không tin là cần thiết để cài đặt các gói python) và có thể không dễ dàng đảo ngược khi gỡ cài đặt.

Tôi khuyên bạn nên tạo một cài đặt setupttools bình thường và sau đó gói nó vào một deb với một liên kết đến /etc/init.d.

+0

Thú vị. Mặc dù tôi đã luôn * phải 'sudo' cài đặt các gói Python, vì vậy tôi không nghĩ là root là một vấn đề. – Cerin

+0

Tôi có thể sai, nhưng tôi nghĩ rằng, trong python3 ít nhất, bạn có thể cài đặt vào một vị trí cụ thể của người dùng (ví dụ ~/.python hoặc một cái gì đó) – aquavitae

+0

Bạn luôn có thể sử dụng gói virtualenv và cài đặt ở bất cứ đâu bạn muốn – Dikei

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