Trouble installing Yakut -- missing header files for ALSA/libjack

Hello there, I’m attempting to install yakut onto a fresh VM created from ubuntu-20.04.3-desktop-amd64.iso. It looks like an issue either with a missing package “jack”, and/or a missing “alsa/asoundlib.h” header file.

Wondering if someone could point me in the right direction to resolve this?

slilly@slilly-vb-ubuntu:~/projects/revelation/wip/uavcan$ pip3 install yakut
Collecting yakut
  Using cached yakut-0.6.0-py3-none-any.whl (98 kB)
Requirement already satisfied: psutil~=5.8 in /home/slilly/.local/lib/python3.8/site-packages (from yakut) (5.8.0)
Requirement already satisfied: simplejson~=3.17 in /home/slilly/.local/lib/python3.8/site-packages (from yakut) (3.17.5)
Requirement already satisfied: mido~=1.2 in /home/slilly/.local/lib/python3.8/site-packages (from yakut) (1.2.10)
Requirement already satisfied: requests~=2.25 in /home/slilly/.local/lib/python3.8/site-packages (from yakut) (2.26.0)
Requirement already satisfied: pysdl2<2.0 in /home/slilly/.local/lib/python3.8/site-packages (from yakut) (0.9.9)
Requirement already satisfied: ruamel.yaml<0.18 in /home/slilly/.local/lib/python3.8/site-packages (from yakut) (0.17.16)
Requirement already satisfied: coloredlogs~=15.0 in /home/slilly/.local/lib/python3.8/site-packages (from yakut) (15.0.1)
Requirement already satisfied: click~=7.1 in /home/slilly/.local/lib/python3.8/site-packages (from yakut) (7.1.2)
Requirement already satisfied: pyuavcan[transport_can_pythoncan,transport_serial,transport_udp]~=1.2 in /home/slilly/.local/lib/python3.8/site-packages (from yakut) (1.2.9)
Collecting python-rtmidi~=1.4
  Using cached python-rtmidi-1.4.9.tar.gz (251 kB)
Requirement already satisfied: scipy~=1.6 in /home/slilly/.local/lib/python3.8/site-packages (from yakut) (1.7.1)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/lib/python3/dist-packages (from requests~=2.25->yakut) (1.25.8)
Requirement already satisfied: idna<4,>=2.5; python_version >= "3" in /usr/lib/python3/dist-packages (from requests~=2.25->yakut) (2.8)
Requirement already satisfied: charset-normalizer~=2.0.0; python_version >= "3" in /home/slilly/.local/lib/python3.8/site-packages (from requests~=2.25->yakut) (2.0.6)
Requirement already satisfied: certifi>=2017.4.17 in /usr/lib/python3/dist-packages (from requests~=2.25->yakut) (2019.11.28)
Requirement already satisfied: ruamel.yaml.clib>=0.1.2; platform_python_implementation == "CPython" and python_version < "3.10" in /home/slilly/.local/lib/python3.8/site-packages (from ruamel.yaml<0.18->yakut) (0.2.6)
Requirement already satisfied: humanfriendly>=9.1 in /home/slilly/.local/lib/python3.8/site-packages (from coloredlogs~=15.0->yakut) (10.0)
Requirement already satisfied: nunavut~=1.2 in /home/slilly/.local/lib/python3.8/site-packages (from pyuavcan[transport_can_pythoncan,transport_serial,transport_udp]~=1.2->yakut) (1.4.2)
Requirement already satisfied: numpy<1.20,~=1.17 in /home/slilly/.local/lib/python3.8/site-packages (from pyuavcan[transport_can_pythoncan,transport_serial,transport_udp]~=1.2->yakut) (1.19.5)
Requirement already satisfied: python-can[serial]~=3.3; extra == "transport_can_pythoncan" in /home/slilly/.local/lib/python3.8/site-packages (from pyuavcan[transport_can_pythoncan,transport_serial,transport_udp]~=1.2->yakut) (3.3.4)
Requirement already satisfied: cobs~=1.1.4; extra == "transport_serial" in /home/slilly/.local/lib/python3.8/site-packages (from pyuavcan[transport_can_pythoncan,transport_serial,transport_udp]~=1.2->yakut) (1.1.4)
Requirement already satisfied: pyserial~=3.4; extra == "transport_serial" in /home/slilly/.local/lib/python3.8/site-packages (from pyuavcan[transport_can_pythoncan,transport_serial,transport_udp]~=1.2->yakut) (3.5)
Requirement already satisfied: libpcap<2.0.0,>=1.10.0b15; extra == "transport_udp" in /home/slilly/.local/lib/python3.8/site-packages (from pyuavcan[transport_can_pythoncan,transport_serial,transport_udp]~=1.2->yakut) (1.10.0b15)
Requirement already satisfied: pydsdl~=1.12 in /home/slilly/.local/lib/python3.8/site-packages (from nunavut~=1.2->pyuavcan[transport_can_pythoncan,transport_serial,transport_udp]~=1.2->yakut) (1.12.1)
Requirement already satisfied: pyyaml in /usr/lib/python3/dist-packages (from nunavut~=1.2->pyuavcan[transport_can_pythoncan,transport_serial,transport_udp]~=1.2->yakut) (5.3.1)
Requirement already satisfied: aenum in /home/slilly/.local/lib/python3.8/site-packages (from python-can[serial]~=3.3; extra == "transport_can_pythoncan"->pyuavcan[transport_can_pythoncan,transport_serial,transport_udp]~=1.2->yakut) (3.1.0)
Requirement already satisfied: wrapt~=1.10 in /home/slilly/.local/lib/python3.8/site-packages (from python-can[serial]~=3.3; extra == "transport_can_pythoncan"->pyuavcan[transport_can_pythoncan,transport_serial,transport_udp]~=1.2->yakut) (1.12.1)
Requirement already satisfied: setuptools>=42.0.2 in /usr/lib/python3/dist-packages (from libpcap<2.0.0,>=1.10.0b15; extra == "transport_udp"->pyuavcan[transport_can_pythoncan,transport_serial,transport_udp]~=1.2->yakut) (45.2.0)
Building wheels for collected packages: python-rtmidi
  Building wheel for python-rtmidi (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-j665ads4/python-rtmidi/setup.py'"'"'; __file__='"'"'/tmp/pip-install-j665ads4/python-rtmidi/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-ypftrexf
       cwd: /tmp/pip-install-j665ads4/python-rtmidi/
  Complete output (39 lines):
  Package jack was not found in the pkg-config search path.
  Perhaps you should add the directory containing `jack.pc'
  to the PKG_CONFIG_PATH environment variable
  No package 'jack' found
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-x86_64-3.8
  creating build/lib.linux-x86_64-3.8/rtmidi
  copying rtmidi/midiutil.py -> build/lib.linux-x86_64-3.8/rtmidi
  copying rtmidi/__init__.py -> build/lib.linux-x86_64-3.8/rtmidi
  copying rtmidi/version.py -> build/lib.linux-x86_64-3.8/rtmidi
  copying rtmidi/midiconstants.py -> build/lib.linux-x86_64-3.8/rtmidi
  running egg_info
  writing python_rtmidi.egg-info/PKG-INFO
  writing dependency_links to python_rtmidi.egg-info/dependency_links.txt
  writing top-level names to python_rtmidi.egg-info/top_level.txt
  reading manifest file 'python_rtmidi.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  warning: no previously-included files found matching '.appveyor.yml'
  warning: no previously-included files found matching '.travis.yml'
  warning: no previously-included files found matching '*.rst.in'
  no previously-included directories found matching 'ci'
  warning: no previously-included files matching '__pycache__' found under directory '*'
  warning: no previously-included files matching '*.py[co]' found under directory '*'
  writing manifest file 'python_rtmidi.egg-info/SOURCES.txt'
  running build_ext
  building 'rtmidi._rtmidi' extension
  creating build/temp.linux-x86_64-3.8
  creating build/temp.linux-x86_64-3.8/src
  creating build/temp.linux-x86_64-3.8/src/rtmidi
  x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -D__RTMIDI_SILENCE_WARNINGS__ -D__LINUX_ALSA__ -D__UNIX_JACK__ -Isrc/rtmidi -I/usr/include/python3.8 -c src/_rtmidi.cpp -o build/temp.linux-x86_64-3.8/src/_rtmidi.o
  x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -D__RTMIDI_SILENCE_WARNINGS__ -D__LINUX_ALSA__ -D__UNIX_JACK__ -Isrc/rtmidi -I/usr/include/python3.8 -c src/rtmidi/RtMidi.cpp -o build/temp.linux-x86_64-3.8/src/rtmidi/RtMidi.o
  src/rtmidi/RtMidi.cpp:1540:10: fatal error: alsa/asoundlib.h: No such file or directory
   1540 | #include <alsa/asoundlib.h>
        |          ^~~~~~~~~~~~~~~~~~
  compilation terminated.
  error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
  ----------------------------------------
  ERROR: Failed building wheel for python-rtmidi
  Running setup.py clean for python-rtmidi
Failed to build python-rtmidi
Installing collected packages: python-rtmidi, yakut
    Running setup.py install for python-rtmidi ... error
    ERROR: Command errored out with exit status 1:
     command: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-j665ads4/python-rtmidi/setup.py'"'"'; __file__='"'"'/tmp/pip-install-j665ads4/python-rtmidi/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-kmp0f5sr/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers /home/slilly/.local/include/python3.8/python-rtmidi
         cwd: /tmp/pip-install-j665ads4/python-rtmidi/
    Complete output (39 lines):
    Package jack was not found in the pkg-config search path.
    Perhaps you should add the directory containing `jack.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'jack' found
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.8
    creating build/lib.linux-x86_64-3.8/rtmidi
    copying rtmidi/midiutil.py -> build/lib.linux-x86_64-3.8/rtmidi
    copying rtmidi/__init__.py -> build/lib.linux-x86_64-3.8/rtmidi
    copying rtmidi/version.py -> build/lib.linux-x86_64-3.8/rtmidi
    copying rtmidi/midiconstants.py -> build/lib.linux-x86_64-3.8/rtmidi
    running egg_info
    writing python_rtmidi.egg-info/PKG-INFO
    writing dependency_links to python_rtmidi.egg-info/dependency_links.txt
    writing top-level names to python_rtmidi.egg-info/top_level.txt
    reading manifest file 'python_rtmidi.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    warning: no previously-included files found matching '.appveyor.yml'
    warning: no previously-included files found matching '.travis.yml'
    warning: no previously-included files found matching '*.rst.in'
    no previously-included directories found matching 'ci'
    warning: no previously-included files matching '__pycache__' found under directory '*'
    warning: no previously-included files matching '*.py[co]' found under directory '*'
    writing manifest file 'python_rtmidi.egg-info/SOURCES.txt'
    running build_ext
    building 'rtmidi._rtmidi' extension
    creating build/temp.linux-x86_64-3.8
    creating build/temp.linux-x86_64-3.8/src
    creating build/temp.linux-x86_64-3.8/src/rtmidi
    x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -D__RTMIDI_SILENCE_WARNINGS__ -D__LINUX_ALSA__ -D__UNIX_JACK__ -Isrc/rtmidi -I/usr/include/python3.8 -c src/_rtmidi.cpp -o build/temp.linux-x86_64-3.8/src/_rtmidi.o
    x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -D__RTMIDI_SILENCE_WARNINGS__ -D__LINUX_ALSA__ -D__UNIX_JACK__ -Isrc/rtmidi -I/usr/include/python3.8 -c src/rtmidi/RtMidi.cpp -o build/temp.linux-x86_64-3.8/src/rtmidi/RtMidi.o
    src/rtmidi/RtMidi.cpp:1540:10: fatal error: alsa/asoundlib.h: No such file or directory
     1540 | #include <alsa/asoundlib.h>
          |          ^~~~~~~~~~~~~~~~~~
    compilation terminated.
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
    ----------------------------------------
ERROR: Command errored out with exit status 1: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-j665ads4/python-rtmidi/setup.py'"'"'; __file__='"'"'/tmp/pip-install-j665ads4/python-rtmidi/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-kmp0f5sr/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers /home/slilly/.local/include/python3.8/python-rtmidi Check the logs for full command output.

You seem to be using a Debian-based distro. If this is correct, then you can fix this problem by installing the missing packages with headers (this is mentioned in the README):

sudo apt install libasound2-dev libjack-dev

Related:

1 Like

Thanks for the help, I’m up and running now!

1 Like