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.9and>= 3.8 - Include correct Protobuf implementation
- Instruct new users with this problem to change
collections.MutableMappingandcollections.MutableSequenceinparrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/google/protobuf/internal/well_known_types.pyintocollections.abc.MutableMappingandcollections.abc.MutableSequencerespectively.