Hello,

I am having problems installing the mprpc package (pre-requisite for building 
the UHD driver).\
I am trying to install it because it is imported in some of the python files I 
am using.

Please take a look through my notes below.

In a nut shell, the build is using the header files in 
**‘/usr/include/python3.10’** when I need it to use the header files in 
**‘\~/.pyenv/versions/3.5.10/include/python3.5m‘**.

Q. How do you suggest I install mprpc ?\
\
Thanks in advance,

\-Phil

====================

My linux box is running Ubuntu 22.04.5 LTS\
Python 3.10.5 is the base python version.\
\
When I build with 3.10.5 (pip install mprpc), I see the following error.

*building 'mprpc.client' extension*

      *creating build/temp.linux-x86_64-3.10*

      *creating build/temp.linux-x86_64-3.10/mprpc*

      *x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g 
-fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security 
-g -fwrapv -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC 
**-I/usr/include/python3.10** -c mprpc/client.c -o 
build/temp.linux-x86_64-3.10/mprpc/client.o*

      *mprpc/client.c: In function ‘__Pyx_modinit_type_init_code’:*

      *mprpc/client.c:6372:38: error: ‘PyTypeObject’ {aka ‘struct _typeobject’} 
has no member named ‘tp_print’*

       *6372 |   __pyx_type_5mprpc_6client_RPCClient.tp_print = 0;*\
\
The problem seems likely to be related to the compilation include path 
***-I/usr/include/python3.10***

I used pyenv to install 3.5.10 (python 3.5 seems to be the oldest version 
supported by mprpc) and have used both ‘venv’ and the ‘virtualenv’ pyenv 
plug-in to build using python 3.5.10.

I see the same build error and the same include path 
(***-I/usr/include/python3.10***) when building with 3.5.10.\
\
I tried to add the include path for the 3.5.10 header files by setting CFLAGS 
as follows before compiling.\
\
**export CFLAGS="-I\~/.pyenv/versions/3.5.10/include/python3.5m"**

\
Even though I could now see this path added to the compilation command-line, I 
still see the same build error.

The command-line now looks like this.

*building 'mprpc.client' extension*

      *creating build/temp.linux-x86_64-3.10*

      *creating build/temp.linux-x86_64-3.10/mprpc*

      *x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g 
-fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security 
-g -fwrapv -O2 **-I\~/.pyenv/versions/3.5.10/include/python3.5m** -Wdate-time 
-D_FORTIFY_SOURCE=2 -fPIC **-I/usr/include/python3.10** -c mprpc/client.c -o 
build/temp.linux-x86_64-3.10/mprpc/client.o*

      *mprpc/client.c: In function ‘__Pyx_modinit_type_init_code’:*

      *mprpc/client.c:6372:38: error: ‘PyTypeObject’ {aka ‘struct _typeobject’} 
has no member named ‘tp_print’*

       *6372 |   __pyx_type_5mprpc_6client_RPCClient.tp_print = 0;*\
\
A few lines later in the build I see the following lines which seems to 
indicate that the mprpc build is STILL using ‘/usr/library/python3.10’

*In file included from /usr/include/python3.10/unicodeobject.h:1046,*

                       *from /usr/include/python3.10/Python.h:83,*
_______________________________________________
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com

Reply via email to