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
andcollections.MutableSequence
inparrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/google/protobuf/internal/well_known_types.py
intocollections.abc.MutableMapping
andcollections.abc.MutableSequence
respectively.