Installing Libvirt on Ubuntu for Python is as easy as:
sudo apt install -y python python-pip libvirt-dev pip install libvirt-python
With the default installation, you could miss some of the Libvirt API bindings exposed to the Python package, although you have the latest version. So if you ever need to compile the library yourself, here you go (my setup was Libvirt 4.0.0 on Ubuntu 16.04 with Python 2.7):
#!/usr/bin/env bash WORK_DIR="/tmp/libvirt" sudo apt update sudo apt install -y git # LIBVIRT WORK_DIR_LIBVIRT="$WORK_DIR/libvirt" mkdir -p $WORK_DIR_LIBVIRT cd $WORK_DIR_LIBVIRT LIBVIRT_VERSION="v4.0.0" git clone -b $LIBVIRT_VERSION --single-branch --depth 1 https://github.com/libvirt/libvirt.git . git checkout $LIBVIRT_VERSION sudo apt install -y \ gettext \ libtool \ autoconf \ autopoint \ pkg-config \ xsltproc \ libxml2-utils ./bootstrap sudo apt install -y \ libnl-3-dev \ libnl-route-3-dev \ libxml2-dev \ libdevmapper-dev \ libpciaccess-dev \ python ./configure sudo apt install -y intltool aclocal make sudo make install # LIBVIRT PYTHON WORK_DIR_LIBVIRT_PYTHON="$WORK_DIR/python" mkdir -p $WORK_DIR_LIBVIRT_PYTHON cd $WORK_DIR_LIBVIRT_PYTHON LIBVIRT_PYTHON_VERSION="v4.0.0" git clone -b $LIBVIRT_PYTHON_VERSION --single-branch --depth 1 https://github.com/libvirt/libvirt-python . git checkout $LIBVIRT_PYTHON_VERSION sudo apt install -y python-dev python setup.py build python setup.py install # CLEANUP rm -r $WORK_DIR sudo apt purge -y \ gettext \ libtool \ autoconf \ autopoint \ pkg-config \ xsltproc \ libxml2-utils \ libnl-3-dev \ libnl-route-3-dev \ libxml2-dev \ libdevmapper-dev \ libpciaccess-dev \ intltool \ python-dev
The above may vary depending on your Ubuntu setup. Just pay attention to errors regarding missing tools.
Now check for the symbols you needed:
sudo apt install -y binutils nm -g /usr/local/lib/libvirt.so
I recommend compilation attempts inside an isolated environment.