2010-11-03 39 views
6

Tôi phải triển khai một ứng dụng Django trên hệ thống SuSE Linux Enterprise 11. Các quy tắc của công ty nói rằng tôi cần triển khai chỉ sử dụng RPM. Trong khi tôi có thể sử dụng ./setup.py bdist_rpm cho mỗi phụ thuộc, nó không thực sự lành mạnh, vì RPM chưa ghi lại tất cả các phụ thuộc. Vì vậy, tôi không có lợi thế thực sự trong việc sử dụng RPM và quản lý phụ thuộc theo cách thủ công là hơi cồng kềnh và tôi muốn tránh nó.Triển khai Django với virtualenv bên trong gói phân phối?

Bây giờ tôi đã có ý tưởng sau: Khi xây dựng một gói, tôi có thể tạo một virtualenv, cài đặt tất cả các phụ thuộc của tôi qua pip ở đó và sau đó gói nó với phần còn lại của mã vào một RPM rắn.

Cách tiếp cận này hợp lý như thế nào?

Trả lời

2

Tôi đã sử dụng phương pháp này trong khoảng một năm nay và nó đã hoạt động khá tốt.

Một lưu ý là bạn sẽ muốn kiểm tra các dòng chữ trong bất kỳ tập lệnh python nào được ghi vào thư mục bin của virtualenv. Đây sẽ là các tên đường dẫn đầy đủ được sử dụng trong môi trường xây dựng của bạn, có thể không phải là cùng một thư mục nơi bạn kết thúc cài đặt virtualenv. Vì vậy, bạn có thể cần phải thêm một số cuộc gọi sed trong cài đặt sau của RPM để điều chỉnh đường dẫn.

+0

Bạn có thể muốn điều tra tùy chọn - có thể liên quan khi tạo virtualenv; nó không hoàn hảo nhưng không giải quyết được một số vấn đề với đường dẫn tuyệt đối. –

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