2010-03-19 34 views
5

Chúng tôi có nhiều dự án trong tổ chức của chúng tôi là hỗn hợp Python/C. Hiện tại chúng tôi đang cố gắng tiêu chuẩn hóa trên một bố cục thư mục cho các dự án của chúng tôi và đang cố gắng tìm ra một sơ đồ thuận tiện. Một điểm tranh cãi là nơi đặt các mô-đun mở rộng C trong cây.Bố trí thư mục cho dự án Python với mô-đun mở rộng C

Chúng tôi đang tung xung quanh một vài tùy chọn (tương đối so với thư mục gốc của dự án):

./src/package/subpackage/module.c 

hoặc cùng với các module python trong cây gói:

./package/subpackage/module.c 

hoặc trong một thư mục src trong gói phụ:

./package/subpackage/src/module.c 

Một lý do để giữ chúng khỏi giám đốc gói ies có thể là do nó sẽ dẫn đến lộn xộn, đặc biệt nếu có các tệp .c và .h khác không phải là các mô-đun nhưng vẫn cần được biên dịch. Cũng trong lược đồ "tích hợp", bạn sẽ làm gì với các tiêu đề và các tệp được nhiều hơn một mô-đun sử dụng? Đặt chúng vào một thư mục cấp cao nhất?

Tôi muốn biết những gì người khác đang sử dụng hoặc nếu có bất kỳ phương pháp hay nhất được thiết lập nào cho việc này.

+0

nếu có bất kỳ tin tức nào về chủ đề này, tôi rất vui khi được nghe. –

Trả lời

1

Tôi nghĩ rằng cách bố trí của các thư viện chuẩn của Python là một ví dụ hợp lý: dưới trunk, mà về cơ bản là gốc rễ cho repo SVN (ròng của chi nhánh & c), thư mục Modules có rất nhiều .c.h file, thư mục Lib rất nhiều tệp .py. Trong các dự án của riêng tôi, tôi có xu hướng phân chia nguồn tương tự (và thực sự nếu tôi có Cython hoặc Pyrex, hoặc SWIG vv, tôi có xu hướng có các thư mục khác cho phân mục), mặc dù có tên thư mục khác nhau (tôi thú nhận tôi) không có quy tắc nhất quán cho tên thư mục, cũng như tôi chưa bao giờ nghe nói đến các nguyên tắc tốt cho các tên như vậy).

+0

Tôi đã xem thư viện chuẩn Python và tôi không tin đó là một ví dụ hay. Chủ yếu là bởi vì rất nhiều quyết định của tổ chức đã được thực hiện cách trở lại và có thể không phản ánh tất cả những thứ hiện đang được sử dụng. Tôi đoán nếu tôi đã đi xuống tuyến đường này, tôi cần một kịch bản xây dựng sau đó thu thập các mô-đun từ tất cả các vị trí khác nhau và đặt chúng trong thư mục gói cuối cùng để thử nghiệm hoặc triển khai? –

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