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.