Як виправити erpc ValueError: The generated shim code version ... is different to the rest of eRPC code

Проблема:

Під час спроби імпортувати згенерований Python-код вашого проєкту erpc, наприклад:

erpc_import_example.py
from erpc_myproject import *

Ви бачите таке повідомлення про помилку:

erpc_traceback.txt
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/.

Рішення

Або ви не встановили бібліотеку Python erpc (якщо в повідомленні про помилку вказано ... different to the rest of eRPC code ('unknown')), або ви встановили неправильну версію (наприклад, ... (1.9.1) is different to the rest of eRPC code ('1.10.0')).

Якщо ви зовсім не встановили erpc, просто використайте

pip_install_erpc.sh
pip install erpc

і спробуйте запустити ваш скрипт знову.

Якщо ви встановили неправильну версію, у вас є два варіанти:

Варіант 1 (рекомендований): Згенерувати код повторно

Просто використайте оригінальну команду (якийсь виклик erpcgen), якою ви користувалися, щоб згенерувати код повторно з використанням поточної встановленої версії.

Варіант 2: Встановити правильну версію

Для цього потрібно визначити, яка версія є правильною. Розглянемо таке повідомлення про помилку:

erpc_version_mismatch.txt
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/.

З цього повідомлення можна зрозуміти, що версія shim-коду — 1.9.1, тоді як у вас встановлено 1.10.0. Отже, щоб усе запрацювало, потрібно встановити версію 1.9.1 бібліотеки erpc.

Встановіть її за допомогою

pip_install_erpc_version.sh
pip install -U erpc==1.9.1

а потім повторіть вашу команду. Якщо ви використовуєте Jupyter Notebook або щось подібне, вам потрібно перезапустити ядро, щоб завантажити нову бібліотеку!


Дивіться схожі статті за категоріями: Embedded Python