Tom,

It looks like the OOT might be using a different version of pybind11 than
the ppa version of gnuradio was built against.  The PPA for 20.04 appears
to have been built using pybind11 v2.5.0, but the default with Ubuntu 20.04
is 2.4.3.

I can repeat the symptom you see when creating a docker that has
pybind11-dev v.2.4.3 from the main Ubuntu repos, but then pull gnuradio
from ppa:gnuradio-releases.  After installing gnuradio from the ppa, if I
then do:
apt upgrade pybind11-dev

then the OOT will compile and load properly.

I can probably fix this in the PPA by removing the pybind11 packages and
just relying on what gets shipped with Ubuntu, but for now, maybe a ` apt
upgrade pybind11-dev ` will fix the issue.

Josh

On Sun, May 9, 2021 at 7:18 PM Tom McDermott <tom.n...@gmail.com> wrote:

> I built a new VM from zero.  Ubuntu 20.04
> apt install build-essential
> apt install git
> apt install cmake
> apt install python3-pip
> pip3 install pygccxml
> build, install pybind11 from 2.4.3 tarball
> setup gnuradio repository to releases
> apt install gnuradio
>    This gives gnuradio 3.9.1.0
>
> git-cloning both Ron's gr-iqlevels and my gr-hpsdr, going through cmake,
> make, sudo make install, sudo ldconfig
> yields exactly the same results as before:  the gr:sync_block
> (gr-iqlevels)  or the gr::block (gr-hpsdr)  are not imported.
>
> -- Tom, N5EG
>
>
>
>
>
>
> On Sun, May 9, 2021 at 11:44 AM Tom McDermott <tom.n...@gmail.com> wrote:
>
>> Hi Ron - thank you for sending me the link to your 3.9 gr-iqlevels module
>> !
>> It builds and installs OK, but when trying to run it gives me the same
>> type of error as my own module:
>>
>> Note: cmake .. -DCMAKE_INSTALL_PREFIX=/usr   was used for for gr-iqlevels
>>
>> $ python3
>> Python 3.8.5 (default, Jan 27 2021, 15:41:15)
>> [GCC 9.3.0] on linux
>> Type "help", "copyright", "credits" or "license" for more information.
>> >>> import gnuradio
>> >>> import iqlevels
>> Traceback (most recent call last):
>>   File "<stdin>", line 1, in <module>
>>   File "/usr/lib/python3/dist-packages/iqlevels/__init__.py", line 18, in
>> <module>
>>     from .iqlevels_python import *
>> ImportError: generic_type: type "iqlevels" referenced unknown base type
>> "gr::sync_block"
>> >>>
>>
>> And when run from GRC:
>>
>> Traceback (most recent call last):
>>   File "/home/tom/Desktop/iqlevels.py", line 142, in <module>
>>     main()
>>   File "/home/tom/Desktop/iqlevels.py", line 120, in main
>>     tb = top_block_cls()
>>   File "/home/tom/Desktop/iqlevels.py", line 81, in __init__
>>     self.iqlevels_iqlevels_0 = iqlevels.iqlevels(samp_rate, 1)
>> AttributeError: type object 'iqlevels' has no attribute 'iqlevels'
>>
>>
>> So it appears there is something wrong or misconfigured in my system.
>> I am baffled as to what that might be.
>>
>> Ubuntu 20.04
>> Gnuradio 3.9.0.0
>> Python 3.8.5
>> Cmake 3.16.3
>> GCC 9.3.0
>> pygccxml  2.1.0  installed using pip3
>> pybind11-2.4.3 installed from tarball according to the OOT 3.9
>> instructions
>>   pybind11 build, cmake, make, make install by the above directions.
>>    it put the various pybind headers into /usr/local/include/pybind11/
>>
>> Is there some other configuration, path, or other thing that needs to be
>> setup?
>>
>> -- Tom, N5EG
>>
>>
>>
>>
>>

Reply via email to