AirSDK uses incompatible protobuf implementation

The Problem

Using WSL and Ubuntu 22.04, and following the instructions for AirSDK installation and trying to build the “Hello Drone” with the command airsdk build --simulator fails, because the Google Protobuf Python implementation tries to use collections.MutableMapping that was deprecated in Python 3.10.

The Cause

The package parrot-airsdk-cli has a dependencies on both Python3 and Google Protobuf. The Python3 dependency is stated as python >= 3.8 in the package configuration files, which causes apt-package manager to retrieve Python 3.10 and afterwards install Google Protobuf that is presumably older than Sep 27, 2021, because the fix for this incompatibility was made then.

Solutions

Either:

  • Change the Python dependency to be <= 3.9 and >= 3.8
  • Include correct Protobuf implementation
  • Instruct new users with this problem to change collections.MutableMapping and collections.MutableSequence in parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/google/protobuf/internal/well_known_types.py into collections.abc.MutableMapping and collections.abc.MutableSequence respectively.

This topic was automatically closed after 30 days. New replies are no longer allowed.