Python Modul mit boost::python erstellen



  • Ich habe versucht mithilfe von Boost.Python ein eigenes Modul zu erstellen. Dabei wird zwar das Modul erstellt und es kann auch in Python importiert werden, aber die Funktion die exportiert werden soll findet sich nicht wieder.
    Hat das schon mal jemand gemacht und sieht meinen Fehler?
    Verwendt wird MSVC 14.2 und Python 3.8.

    Code:

    #include <boost/python.hpp>
    
    using namespace boost::python;
    #include <string>
    
    int add() {
        return 0;
    }
    
    
    BOOST_PYTHON_MODULE(hello)
    {
        def("add", add);
    }
    

    Ausgabe Python:

    >>> import hello
    >>> hello.add()
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    AttributeError: module 'hello' has no attribute 'add'
    >>> dir(hello)
    ['__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__']
    >>>
    

    Ich vermute, dass etwas beim erstellen der DLL schief geht, ohne jetzt meine Vermutung direkt belegen zu können.



  • Mein python kennt hello ohne dass ich eine Extension gebaut habe. Vielleicht ist der Name schlecht gewählt.



  • @manni66 Mein Python kennt kein standardmäßig hello Paket. Zudem habe ich im Vorfeld auch einen anderen Namen verwendet um auch sowas auszuschließen.


Anmelden zum Antworten