# OOT Python Block

**URL:** <https://www.ruby-forum.com/t/oot-python-block/234059>\
**Category:** GNU Radio\
**Created:** [February 3, 2015, 10:30am UTC](https://www.ruby-forum.com/t/oot-python-block/234059 "2015-02-03T10:30:20Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![addis\_a](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/c4cdca/32.png) [@addis\_a](https://www.ruby-forum.com/u/addis_a)\
**Post date:** [February 3, 2015, 10:30am UTC](https://www.ruby-forum.com/t/oot-python-block/234059/1 "2015-02-03T10:30:20Z")

</div>

Hi Tom and Richard,

I am sorry, but I cannot reproduce the error, which I described before.  
I created a new module with gr\_modtool and added a sync _python_ block  
and all worked fine.  
The problem might have vanished with my last git pull.

My lines in the .xml now look like the original ones again:

import mymodule  
mymodule.myblock(args)

Tom: **init**.py is unchanged.

Richard: Yes, double the block\_name in was what I meant:  
mymodule.myblock.myblock(args)

Do you have a recent git version of GR at hands?

Just a silly question: Did you export the PYTHONPATH variable?

Some more guesses - for comparison  
I also export PATH (dir/bin/), LD\_LIBRARY\_PATH(dir/lib/),  
PKG\_CONFIG\_PATH (dir/lib/pkgconfig)

 = /home/my\_login/usr on my machine This should not be of interest, but maybe it is still. I do this in ~/.profile (which gets loaded once you log in again, in Kubuntu 14.10)

I have no variables defined in the config folders ~/.gnuradio or  
~/.grc\_gnuradio.

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.com](http://www.bosch.com)[http://www.bosch.com](http://www.bosch.com)

Tel. +49(711)811-8809  
Fax +49(711)811-1052  
Mobile +49(172)5630639  
removed\_email\_address@domain.invalid[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

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: removed\_email\_address@domain.invalid[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
[[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)] Im Auftrag von Tom R.  
Gesendet: Freitag, 30. Januar 2015 11:38  
An: Ludwig Stephan (CR/AEH4); GNURadio D.ion List  
Betreff: Re: [Discuss-gnuradio] OOT Python Block

On Fri, Jan 30, 2015 at 5:31 AM, Ludwig Stephan (CR/AEH4)  
\<removed\_email\_address@domain.invalid[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)\>  
wrote:  
Hi Tom,

as far as I understood the original post, we talk about pure python  
blocks, hence no impl.cc file. My experience is that gr\_modtool makexml  
does not work for these blocks. I will try to reproduce the effect and  
will post this – but not before mid of next week.

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

Von: removed\_email\_address@domain.invalid[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
[[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)] Im Auftrag  
von Tom R.  
Gesendet: Freitag, 30. Januar 2015 09:45  
An: Ludwig Stephan (CR/AEH4)  
Cc: Richard B.;  
removed\_email\_address@domain.invalid[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
Betreff: Re: [Discuss-gnuradio] OOT Python Block

On Fri, Jan 30, 2015 at 2:03 AM, Ludwig Stephan (CR/AEH4)  
\<removed\_email\_address@domain.invalid[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)\>  
wrote:  
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

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

Gesendet: Donnerstag, 29. Januar 2015 23:22  
An: removed\_email\_address@domain.invalid[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
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
