|
From: | Tom McDermott |
Subject: | Re: issues porting C++ OOT to 3.9 - fails at runtime import |
Date: | Mon, 10 May 2021 08:20:24 -0700 |
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-devthen 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.JoshOn Sun, May 9, 2021 at 7:18 PM Tom McDermott <tom.n5eg@gmail.com> wrote:I built a new VM from zero. Ubuntu 20.04apt install build-essentialapt install gitapt install cmakeapt install python3-pippip3 install pygccxmlbuild, install pybind11 from 2.4.3 tarballsetup gnuradio repository to releasesapt install gnuradioThis gives gnuradio 3.9.1.0git-cloning both Ron's gr-iqlevels and my gr-hpsdr, going through cmake, make, sudo make install, sudo ldconfigyields exactly the same results as before: the gr:sync_block (gr-iqlevels) or the gr::block (gr-hpsdr) are not imported.-- Tom, N5EGOn Sun, May 9, 2021 at 11:44 AM Tom McDermott <tom.n5eg@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.04Gnuradio 3.9.0.0Python 3.8.5Cmake 3.16.3GCC 9.3.0pygccxml 2.1.0 installed using pip3pybind11-2.4.3 installed from tarball according to the OOT 3.9 instructionspybind11 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
[Prev in Thread] | Current Thread | [Next in Thread] |