discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] "ImportError: No module named myblock" when gener


From: Nick Foster
Subject: Re: [Discuss-gnuradio] "ImportError: No module named myblock" when generating py file in GRC
Date: Wed, 20 Apr 2011 18:35:44 -0700

On Thu, 2011-04-21 at 09:15 +0800, yyl wrote:
> On Wed, 20 Apr 2011 17:47:57 -0700
> Nick Foster <address@hidden> wrote:
> 
> > On Thu, 2011-04-21 at 08:37 +0800, Yulong Yang wrote:
> > > Hello,
> > > 
> > > I have tried both python -c "import..." and echo $. I see the path
> > > to my folder in both of them. But it still says ImportError in
> > > top_block.py. Where exactly should the path direct to? I tried both
> > > "~/gnuradio" and "~/gnuradio/myblock".
> > > 
> > > When you say __init__.py do you mean the one in sub-folder
> > > "python"? I find this comment in that file: # The presence of this
> > > file turns this directory into a Python package.
> > > 
> > > I am wondering where I could see the declare of my module.
> > 
> > How did you create your project? Did you use
> > "create-gnuradio-out-of-tree-project myblock"? If you did, you should
> > be able to:
> > 
> > cd myblock
> > ./bootstrap
> > ./configure
> > make
> > sudo make install
> > 
> > and then
> > python -c "import myblock"
> > 
> > Otherwise, you're going to have to go into the howto-write-a-block
> > directory which you cloned, and edit the SWIG stuff to change all the
> > "howto" references to "myblock", and that is going to be a pain. Try
> > re-creating your project using create-gnuradio-out-of-tree-project,
> > it's the recommended way to start your own block project.
> > 
> > --n
> > 
> 
> Actually my block folder is copied from a wiki tutorial here:
> http://gnuradio.org/redmine/wiki/gnuradio/More_examples
> 
> I tried create-out-of-tree command, it seems to download the newest
> how-to block from the gnuradio site and make it into the path I create
> it, right? In the folder, it looks the same with the default folder
> "gr-howto-write-a-block". Do you mean I should add my own block besides
> the already exist files like howto_square_ff.cc?

The friendly part about the out-of-tree script is it also renames
everything from "howto" to "myblock" or "monkeys" or whatever name you
invoked the out-of-tree script with, and so takes care of half the work
for you.

After that, you will have to add your custom blocks to SWIG by editing
myblock/swig/myblock.i and adding them there, as well as making .i files
to correspond to your blocks, just like
myblock/swig/myblock_square_ff.i. You will also obviously have to add
the C++ blocks themselves to the Makefile.am in your myblock/lib
directory, and if you want GRC blocks made, put the .xml files in
myblock/grc and add them to the Makefile.am in the myblock/grc
directory.

Basically, wherever you see "square" in the project, replace it with the
name of your own block.

--n

> 
> 
> > > 
> > > To Mike: yes, I am in Ubuntu 10.04
> > > 
> > > Many thanks to your help.
> > > 
> > > On Wed, 2011-04-20 at 16:43 -0700, Josh Blum wrote:
> > > > 
> > > > On 04/20/2011 04:42 PM, yulong yang wrote:
> > > > > On Thu, Apr 21, 2011 at 7:17 AM, Josh Blum <address@hidden>
> > > > > wrote:
> > > > > 
> > > > >>
> > > > >>
> > > > >> On 04/20/2011 03:00 AM, Yulong Yang wrote:
> > > > >>> Hello,
> > > > >>>
> > > > >>> I am new to GNU radio. I am trying to write a simple block
> > > > >>> and add it to GRC. All steps before are fine. However, when I
> > > > >>> generate the top_block.py file, it says "ImportError: No
> > > > >>> module named myblock".
> > > > >>>
> > > > >>> The myblock is actually the name of the folder I create to
> > > > >>> put all necessary files of my block such as files like
> > > > >>> MakeFile.am and sub-folders lib, swig, etc. Can this be
> > > > >>> called a module?
> > > > >>>
> > > > >>
> > > > >> In the case of python, a module is a python file or a
> > > > >> directory w/ a python file __init__.py
> > > > >>
> > > > > 
> > > > > Thank your for your reply.
> > > > > 
> > > > > So for example, the how-to--write-a-block folder stands for a
> > > > > module called "howto", right? Is the name of the module defined
> > > > > in the py file?
> > > > > 
> > > > >>
> > > > >>> What is a module? I see the code in how-to-write-a-block, it
> > > > >>> seems that it also import a module howto. Where could I find
> > > > >>> such modules or create one my own?
> > > > >>>
> > > > >>> Sorry to ask so many questions; I cannot find a clear way to
> > > > >>> study this. I would really appreciate any help.
> > > > >>>
> > > > >>> Thank you in advance.
> > > > >>>
> > > > >>>
> > > > >>
> > > > >> Python needs to be able to find your block: Did you install it
> > > > >> into the python search path? Or set PYTHONPATH to where your
> > > > >> block is installed?
> > > > >>
> > > > >>
> > > > > Do your mean PYTHONPATH or just system search path?
> > > > > I have set my block path as the PYTHONPATH in ~/.profile, but
> > > > > it still cannot work. Is there a way to check whether the path
> > > > > is set appropriately?
> > > > > 
> > > > 
> > > > try .bashrc
> > > > 
> > > > also
> > > > 
> > > > python -c "import sys; print sys.path"
> > > > 
> > > > > 
> > > > >> -josh
> > > > >>
> > > > >> _______________________________________________
> > > > >> Discuss-gnuradio mailing list
> > > > >> address@hidden
> > > > >> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
> > > > >>
> > > > > 
> > > 
> > > 
> > > 
> > > _______________________________________________
> > > Discuss-gnuradio mailing list
> > > address@hidden
> > > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
> > 
> > 
> 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]