How to install Python-efl on Ubuntu or Linux Mint

Python-efl is the binding for EFL, an awesome and performance-obcessed set of libraries. EFL stands for Enlightment Foundation Libraries. It was started for the Enlightment desktop project and developed into a set of libraries. This tutorial shows how to install python-efl.

Install Instructions

First create a new folder called efl_dev

mkdir efl_dev
cd efl_dev

Then see EFL downloads and Python-EFL downloads.

See the version you want is available on both. Let’s choose 1.25.0 for this tutorial

Download and extract both

wget https://download.enlightenment.org/rel/libs/efl/efl-1.25.0.tar.xz
tar xvf efl-1.25.0.tar.xz
wget https://download.enlightenment.org/rel/bindings/python/python-efl-1.25.0.tar.xz
tar xvf python-efl-1.25.0.tar.xz

Install EFL

Now let us install EFL first. Let’s install essentials

sudo apt install build-essential check meson ninja-build

and dependencies

sudo apt install libssl-dev libsystemd-dev libjpeg-dev libglib2.0-dev libgstreamer1.0-dev liblua5.2-dev libfreetype6-dev libfontconfig1-dev libfribidi-dev libavahi-client-dev libharfbuzz-dev libibus-1.0-dev libx11-dev libxext-dev libxrender-dev libgl1-mesa-dev libopenjp2-7-dev libwebp-dev libgif-dev libtiff5-dev libpoppler-dev libpoppler-cpp-dev libspectre-dev libraw-dev librsvg2-dev libudev-dev libmount-dev libdbus-1-dev libpulse-dev libsndfile1-dev libxcursor-dev libxcomposite-dev libxinerama-dev libxrandr-dev libxtst-dev libxss-dev libgstreamer-plugins-base1.0-dev doxygen libscim-dev libxdamage-dev libwebp-dev libunwind-dev

and what i found missing

sudo apt install libluajit-5.1-dev

change dir

cd efl-1.25.0

Now let us build the project

meson build
ninja -C build
sudo ninja -C build install

You also have to make some files visible to pkgconfig. One way of doing this is to open /etc/profile in a text editor as root (using for example sudo nano /etc/profile) and add the following line to the end:

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

You may also need to refresh your library path to make sure your apps can find the EFL libraries:

sudo ldconfig

Install Python-EFL

cd ../python-efl-1.25.0

Install python3-dev or corresponding. I was using Python3.9 so i did

sudo apt install python3.9-dev

also python dbus

sudo apt install python-dbus-dev

Then create and activate virtual environment

python3.9 -m venv venv
. venv/bin/activate

Install cython

pip install cython

Now build the package

python setup.py build

and install

python setup.py install


Now if you run pip freeze you should get something similar