How to fix erpc ValueError: The generated shim code version ... is different to the rest of eRPC code
Problem:
When trying to import yourerpc
project generated Python code using e.g.
from erpc_myproject import *
You see the following error message:
Traceback (most recent call last)
Cell In [1], line 1
----> 1 from erpc_myproject import *
File ./erpc_myproject/__init__.py:13
11 version = "unknown"
12 if version != "1.9.1":
---> 13 raise ValueError("The generated shim code version (1.9.1) is different to the rest of eRPC code (%s). \
14 Install newer version by running \"python setup.py install\" in folder erpc/erpc_python/." % repr(version))
16 from . import common
17 from . import client
ValueError: The generated shim code version (1.9.1) is different to the rest of eRPC code ('unknown'). Install newer version by running "python setup.py install" in folder erpc/erpc_python/.
Solution
Either you have not installed the erpc
Python library (if the error message lists ... different to the rest of eRPC code ('unknown')
) or you have installed the wrong version (e.g. ... (1.9.1) is different to the rest of eRPC code ('1.10.0')
).
If you have not installed erpc
at all, simply use
pip install erpc
and retry running your script.
If you have installed the wrong version, you have two options:
Option 1 (preferred): Re-generate the code
Just use the original command (some erpcgen
call) you’ve used to re-generate the code using the currently installed version.
Option 2: Install the correct version
For this, you need to determine what the correct version is. Let’s consider the following error message:
ValueError: The generated shim code version (1.9.1) is different to the rest of eRPC code ('1.10.0'). Install newer version by running "python setup.py install" in folder erpc/erpc_python/.
From this message, we can read that the shim code version is 1.9.1
whereas you have 1.10.0
installed. Therefore, in order to make it work, we need to install erpc
version 1.9.1
.
Install it using
pip install -U erpc==1.9.1
and then retry your command. If you are using jupyter notebooks or similar, you need to restart your kernel to load the new library!