prpowers
prpowers

Reputation: 65

Is it possible to access C++ headers/libraries and run a C++ script within a python console?

I need to access data via USB from a beam profiler. I've tried using the USB module in python to access it, but unfortunately the company who makes this device "does not support development in Python". The project I am working on is to eventually create a GUI (via Python) to automate a motor and pull data from the device. So it has to be done in Python, or I'm going to have to discard the first half of the code and redo it in C++.

I think the reason the device can only interface with C/C++ is because of the header and library files that come with the driver download.

I've looked at Cython but am still very unsure how it can help me. I'm just trying to access the header files for the driver in python and somehow execute the C commands in python.

BTW I am using Anaconda (if that matters).

Thank-you for any clarification and help!

Upvotes: 3

Views: 67

Answers (1)

Oblivion
Oblivion

Reputation: 7374

Check out boost.python Here is an intro:

The Boost Python Library is a framework for interfacing Python and C++. It allows you to quickly and seamlessly expose C++ classes functions and objects to Python, and vice-versa, using no special tools -- just your C++ compiler. It is designed to wrap C++ interfaces non-intrusively, so that you should not have to change the C++ code at all in order to wrap it, making Boost.Python ideal for exposing 3rd-party libraries to Python. The library's use of advanced metaprogramming techniques simplifies its syntax for users, so that wrapping code takes on the look of a kind of declarative interface definition language (IDL).

It includes support for:

  • References and Pointers

    Globally Registered Type Coercions

    Automatic Cross-Module Type Conversions

    Efficient Function Overloading

    C++ to Python Exception Translation

    Default Arguments

    Keyword Arguments

    Manipulating Python objects in C++

    Exporting C++ Iterators as Python Iterators

    Documentation Strings and many more.

Upvotes: 3

Related Questions