2012-06-30 37 views
7

Tôi hiện đang làm việc trên một ứng dụng khoa học nhỏ C++ Qt 4.8 (và 5.0 khi nó được phát hành) và tôi muốn biết liệu có thể nhúng Python + Numpy + Maptplotlib (và để có một ứng dụng di động ngay cả đối với những người không cài đặt Python) trong một ứng dụng C++ Qt để tạo các ô đẹp trong ứng dụng của tôi?Nhúng Python/Numpy/Matplotlib trong ứng dụng C++ Qt?

Có bất kỳ hướng dẫn/ví dụ nào có sẵn về một thứ như vậy không?

Cảm ơn bạn rất nhiều.

P.S. : nó không phải là một vấn đề đối với tôi phải tạo các tệp tạm thời, nhưng điều quan trọng là người dùng không phải cài đặt python.

+0

Không phải là tôi đã thấy, nhưng không có quá nhiều bước. –

Trả lời

8

Cách phổ biến để đối phó với Python từ C++ là với Boost.Python, nhưng có thể đi cùng mà không có nó.

Điều bạn cần nhớ là "trình thông dịch Python" bao gồm hai phần: Python DLL/SO và Python stdlib, cả hai thứ bạn cần cung cấp. Những điều duy nhất cài đặt Python thêm là cấu hình và một tệp thực thi mà chỉ là một trình bao bọc mỏng xung quanh ba phần còn lại.

Vì bạn không có cấu hình, khi interpreter is initialized, bạn sẽ cần phải sử dụng PySys_SetPath() để đặt sys.path để trỏ tới stdlib và bất kỳ gói bổ sung nào. Từ đó, bạn có thể sử dụng phần còn lại của API C để điều khiển trình thông dịch giống như khi bạn cài đặt gốc.

+0

Điều đó giúp bạn trở thành một thông dịch viên Python. Bây giờ hãy thêm cách cung cấp NumPy và Matplotlib. –

+0

Bạn ... đặt chúng vào một thư mục và thêm nó vào 'sys.path'. Phần đó không thay đổi. –

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