Tôi có thiết kế kém và lớn (> 300 public functions
, >200 numeric constants
được xác định bằng #define
trong tệp tiêu đề) mà tôi phải gói bằng Python. Tôi có dll
và tệp h
. Thư viện được cập nhật hàng năm, cho đến nay theo cách tương thích ngược (tức là chỉ các hàm được thêm vào, hằng số giữ các giá trị số của chúng, v.v.). Nhưng tôi không có bảo đảm vì tôi không kiểm soát thư viện.Tính bảo trì của gói python của thư viện C
Sử dụng ctypes
, tôi thấy hai cách gói này bằng Python:
- Lập bản đồ tất cả các chức năng liên tục và để trăn, 1-1
- Định nghĩa lại các API trong Python và thực hiện cuộc gọi đến thư viện .
Đầu tiên có thể được thực hiện trong một (xấp xỉ) cách tự động từ các tập tin header và do đó dễ dàng hơn để duy trì và nâng cấp, thứ hai đòi hỏi rất nhiều mã python nhưng nó sẽ được dễ dàng hơn để sử dụng.
Tôi sẽ đánh giá cao một số ý kiến dựa trên trải nghiệm của bạn về loại vấn đề này và một số ví dụ.
Xin lỗi nhưng tốt như thế này, nó không thực sự là một câu hỏi rõ ràng. –
Hãy xem SWIG. –
[SIP] (http://pypi.python.org/pypi/SIP/4.14) có thể là một giải pháp thú vị. –