AttributeError: 'module' object has no attribut.. bei C++ Objekt

Python in C/C++ embedden, C-Module, ctypes, Cython, SWIG, SIP etc sind hier richtig.
Zibi
User
Beiträge: 3
Registriert: Freitag 20. Januar 2017, 17:13

AttributeError: 'module' object has no attribut.. bei C++ Objekt

Beitragvon Zibi » Freitag 20. Januar 2017, 17:24

Hallo Zusammen,
ich bin noch neu in Python.
Es geht um einen eigenen C++ block im Rahmen des GNURadio Frameworks.
Die einzelnen module werden innerhalb eines Pythonscripts mittels swig verbunden, einige Teile sind auch in python geschrieben.
Das funktioniert alles (compilieren und Ausführen des Scripts) bis ich eine Objekt aus einem Beispiel hinzufüge:

d_fir = new gr::filter::kernel::fir_filter_ccc(1, std::vector<gr_complex>(trainingssize, gr_complex(0,0)));

Alles wird korrekt compiliert jedoch meckert python bei der Ausführung:

Code: Alles auswählen

Traceback (most recent call last):
  File "/home/zibi/Desktop/adaptiveFilter/GRC-Beispiele/mpsk.py", line 378, in <module>
    main()
  File "/home/zibi/Desktop/adaptiveFilter/GRC-Beispiele/mpsk.py", line 366, in main
    tb = top_block_cls()
  File "/home/zibi/Desktop/adaptiveFilter/GRC-Beispiele/mpsk.py", line 222, in __init__
    self.adaptive_filters_my_true_lms_dec_0 = adaptive_filters.my_true_lms_dec(0.2, (modulated_sync_word))
AttributeError: 'module' object has no attribute 'my_true_lms_dec'



Ich hatte zu dieser Fehlermeldung im Netzt viele verschiedene Aussagen gefunden.. das hat aber nicht weitergeholfen.

Habt ihr da Anregungen?
Vielen Dank!
Benutzeravatar
snafu
User
Beiträge: 5389
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Re: AttributeError: 'module' object has no attribut.. bei C++ Objekt

Beitragvon snafu » Freitag 20. Januar 2017, 17:47

Da wird eben ein Zugriff auf ein nicht existierendes Attribut gemacht. Was die C++ Codezeile damit zu tun hat, solltest du vielleicht noch erklären.
shcol (Repo | Doc | PyPi)
Zibi
User
Beiträge: 3
Registriert: Freitag 20. Januar 2017, 17:13

Re: AttributeError: 'module' object has no attribut.. bei C++ Objekt

Beitragvon Zibi » Freitag 20. Januar 2017, 18:59

Also mein C++ Code funktioniert in python bis ich
in .h mein Objekt deklariere:

Code: Alles auswählen

filter::kernel::fir_filter_ccc *d_fir;


und dieses in .cc benutze:

Code: Alles auswählen

d_fir= new filter::kernel::fir_filter_ccc(1, std::vector<gr_complex>(trainingssize, gr_complex(0,0)));
..
out[i] = d_fir->filter(&in[i]);

das ganze wird dann wunderbar compiliert funktioniert auf einmal im pythonscript (Fehlermeldung s.o). aber nicht mehr.

Ist sicher nen kleiner dummer Fehler, bin halt neu dabei!
Zibi
User
Beiträge: 3
Registriert: Freitag 20. Januar 2017, 17:13

Re: AttributeError: 'module' object has no attribut.. bei C++ Objekt

Beitragvon Zibi » Freitag 20. Januar 2017, 20:52

Kann es sein, dass swig aus irgendeinem Grund mein Objekt nicht umsetzten kann..und es verschweigt?
Benutzeravatar
__deets__
User
Beiträge: 2157
Registriert: Mittwoch 14. Oktober 2015, 14:29

Re: AttributeError: 'module' object has no attribut.. bei C++ Objekt

Beitragvon __deets__ » Sonntag 22. Januar 2017, 15:01

Ich kenne mich mit SWIG nicht aus, fand ich immer am bescheidensten von allen moeglichen Wrappern.

Mit boost::python und SPI (letzteres ist mein Favorit) koennte das sein: du musst natuerlich fuer alle Typen, die du irgendwie in die Python-Welt hieven willst (oder von dort rauspulen) einen Weg vorgeben, wie die konvertiert werden koennen.

boost::python und SIP geben dann ggf. Laufzeit-Fehler aus. Wie gesagt - was SWIG macht weiss ich nicht.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder