discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: QA python code uses installed python and c++ library


From: Miklos Maroti
Subject: Re: QA python code uses installed python and c++ library
Date: Wed, 2 Mar 2022 01:43:36 -0600

Hi Vasil,

Thanks for the quick reply. Indeed, it is related to that issue, and make test does not work without installing it first. However, the linked fixes did not work for me, and I think the reason is that in GNURadio 3.10 changes the module  located to test_modules/gnuradio/modulename from test_modules/modulename.

1. Gnuradio 3.10 uses "from gnuradio.modulename import xyz" (and 3.9 seems to use "from modulename import xyz")
2. Once "from gnuradio import gr" is executed prior to that, then the gnuradio library is loaded, and even if we update the sys.path the "from gnuradio.modulename import xyz" will use the path of the gnuradio module to look up the OOT submodule, and it will never find the test_modules directory.

In the end I could not find any other solution than reverting back to the "testmodules/modulename" output directory in cmake, and using "import modulename" inside the QA code. So I am sceptical whether it is possible to run make test for a gnuradio 3.10 OOT module without installing it.

Best,
Miklos



On Wed, Mar 2, 2022 at 1:26 AM Vasil Velichkov <vvvelichkov@gmail.com> wrote:
Hi Milkos,

Your problem seems related to [1]. Make sure your gnuradio version does include the fix from [2] and your OOT CMakeLists.txt contains [3]

[1] https://github.com/gnuradio/gnuradio/issues/4825
[2] https://github.com/gnuradio/gnuradio/pull/5279
[3] https://wiki.gnuradio.org/index.php/GNU_Radio_3.9_OOT_Module_Porting_Guide#CMakeLists.txt_changes_to_fix_OOT_module_testing

Regards,
Vasil

On 02/03/2022 05.19, Miklos Maroti wrote:
> Dear All,
>
> I have a GNURadio 3.10 OOT module which has C++ blocks and python QA code.
> During my development I do the following steps:
>
> 1. make
> 2. make test
> 3. make install
> 4. change c++ files
> 5. make
> 6. make test
>
> At the last step the python QA code will link the already installed python
> library and not the latest one within the build folder. The QA code should
> link the latest python and c++ libraries from the build directory, and
> there should be no "smartness" (except ImportError) in the QA boilerplate
> code.
>
> I have tried to trick python3 by changing the sys.path prior to the import
> statement, but this fails. Somehow once you have imported gnuradio from the
> stock include path, then changing the sys.path even to the empty list will
> not prevent the loading of the installed OOT module.
>
> Has anyone seen this behaviour? Is there a workaround?
>
> Best,
> Miklos
>


reply via email to

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