OOT Python Block

I’ve created a python block that I’ve tested via command line. It passes
all qa tests. I’ve also created an xml file for it and installed it. I
followed every step the OOT Python Tutorial explains.

I see the category and block in gnuradio-companion. When I use my block
in
a flowgraph, upon to executing the graph I get

AttirbuteError: ‘module’ object has no attribute
‘<my_module_name_here>’

I’ve added the block build location to the PYTHONPATH variable and
confirmed that I can import my module at a python command line.

What do I not have set correctly and what is this error telling me?

Thanks,
Rich

Hi Richard,

I noticed the same problem with some blocks in my own OOT module. I do
not know why, but if you change the lines in the GRC file to (if not
already done)
import my_module.my_block_name_here
my_module.my_block_name_here.my_block_name_here(…)

(note the double block_name in )

I do not remember right, but it might also be sufficient to change only
either one of the lines (you have to try on your own).
You can try by calling the from python. E.g. IPython has tab completion
and you can see by import my_module. (and so on for the make
line), what block is how accessible.

Regards Stephan

Mit freundlichen Grüßen / Best regards

Stephan Ludwig

Robert Bosch GmbH
Corporate Sector Research & Advance Engineering, Communication
Technology (CR/AEH4)
Renningen
70465 Stuttgart
GERMANY
www.bosch.comhttp://www.bosch.com

Tel. +49(711)811-8809
Fax +49(711)811-1052
Mobile +49(172)5630639
[email protected]mailto:[email protected]

Registered Office: Stuttgart, Registration Court: Amtsgericht Stuttgart,
HRB 14000;
Chairman of the Supervisory Board: Franz Fehrenbach; Managing Directors:
Dr. Volkmar Denner,
Dr. Stefan Asenkerschbaumer, Dr. Rolf Bulander, Dr. Stefan Hartung, Dr.
Dirk Hoheisel, Christoph Kübel,
Uwe Raschke, Wolf-Henning Scheider, Dr. Werner Struth, Peter Tyroller
Von: discuss-gnuradio-bounces+stephan.ludwig2=removed_email_address@domain.invalid
[mailto:discuss-gnuradio-bounces+stephan.ludwig2=removed_email_address@domain.invalid]
Im Auftrag von Richard B.
Gesendet: Donnerstag, 29. Januar 2015 23:22
An: [email protected]
Betreff: [Discuss-gnuradio] OOT Python Block

I’ve created a python block that I’ve tested via command line. It passes
all qa tests. I’ve also created an xml file for it and installed it. I
followed every step the OOT Python Tutorial explains.

I see the category and block in gnuradio-companion. When I use my block
in a flowgraph, upon to executing the graph I get

AttirbuteError: ‘module’ object has no attribute ‘<my_module_name_here>’

I’ve added the block build location to the PYTHONPATH variable and
confirmed that I can import my module at a python command line.

What do I not have set correctly and what is this error telling me?

Thanks,
Rich

On Fri, Jan 30, 2015 at 5:31 AM, Ludwig Stephan (CR/AEH4) <
[email protected]> wrote:

Regards

Stephan

Ahh! Thanks for pointing that out. I had missed the fact that it was a
Python block (and I rarely work with them myself).

Ok, I think the fix for that is to add a “from x import *” into the
init.py file for the module where x is your Python block. We should
test this and add it to gr_modtool to avoid this confusion in the
future.

Tom

Here is what my init.py looked like prior to changes:

try:

  • from test_swig import **
    except ImportError:
  • pass*

*from qpsk_demod_py_cb import qpsk_demod_py_cb * <— my block

And after the adding the change you suggested:

try:

  • from test_swig import **
    except ImportError:
  • pass*

*from qpsk_demod_py_cb import **

After running make again, installing and sudo ldconfig, this has not
fixed
the AttributeError I see in gnuradio-companion.

Rich

On Fri, Jan 30, 2015 at 2:03 AM, Ludwig Stephan (CR/AEH4) <
[email protected]> wrote:

my_module.my_block_name_here.my_block_name_here(…)
You can try by calling the from python. E.g. IPython has tab completion
and you can see by import my_module. (and so on for the make line),
what block is how accessible.

Regards Stephan

That can’t be right. You really shouldn’t have to do that to get the
block
to work.

We periodically get this bug from our users, no one has ever explained
how
to reproduce it, and I’ve never seen this failure mode myself. As long
as
you used gr_modtool and made the necessary changes to the files – which
really just means fixing the <+…+> in the impl.cc file – then it
should
just “work”.

Tom

Unfortunately that didn’t work either.

Anyone out there making custom python blocks who worked through this
AttributeError? Is it just a few of us seeing the error?

v/r,
Rich

On Fri, Jan 30, 2015 at 3:23 PM, Richard B. [email protected]

Stephan,

Just to be sure I attempt your solution correctly, you mean to have me
double the block_name in the xml file that exists in the gr_modtool
created
grc directory, is that right?

v/r,
Rich

On Fri, Jan 30, 2015 at 8:47 AM, Richard B. [email protected]