"No XML message definitions found" while running "pip install pymavlink"

Hello everyone. I see the following error when attempting to install pymavlink:

user@user-XPS-15-9570:~/src/Firmware$ sudo pip install pymavlink pyserial
/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/__init__.py:83: RequestsDependencyWarning: Old version of cryptography ([1, 2, 3]) may cause slowdown.
  warnings.warn(warning, RequestsDependencyWarning)
The directory '/home/user/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/home/user/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting pymavlink
  Downloading https://files.pythonhosted.org/packages/07/e3/fa12ec6d31785f51d8530516b404b2a966b23ecc0f1626ce7a4353d12891/pymavlink-2.2.11.tar.gz (3.0MB)
    100% |β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 3.0MB 12.2MB/s 
Requirement already satisfied: pyserial in /usr/local/lib/python2.7/dist-packages (3.4)
Requirement already satisfied: future in /usr/local/lib/python2.7/dist-packages (from pymavlink) (0.16.0)
Requirement already satisfied: lxml in /usr/local/lib/python2.7/dist-packages (from pymavlink) (4.2.5)
Installing collected packages: pymavlink
  Running setup.py install for pymavlink ... error/home/user/src/Firmware/mavlink/include/mavlink/v2.0/message_definitions
    Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-n9_Ziu/pymavlink/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-Gz2MbY/install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running build_py
    No XML message definitions found
    
    ----------------------------------------
Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-n9_Ziu/pymavlink/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-Gz2MbY/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-install-n9_Ziu/pymavlink/

I tried to set the MDEF environment variable:

user@user-XPS-15-9570:~/src/Firmware/mavlink/include/mavlink/v2.0/message_definitions$ export MDEF=`pwd`
user@user-XPS-15-9570:~/src/Firmware/mavlink/include/mavlink/v2.0/message_definitions$ echo $MDEF
/home/user/src/Firmware/mavlink/include/mavlink/v2.0/message_definitions

I installed all the dependencies but I’m unsure how to proceed now.

1 Like

This is just a guess but are the the actual cml files in the 2.0 / message_definitions folder? I would go to the build directory under /tmp and debug using the files there. Find out exactly what XML file can’t be found. If I have time I’ll reinstall pymavlink and dig deeper.