Skip to content

4 Python 3 for OpenEMM

Quite often the Python version provided by your operating system is too old or incomplete. Therefore, you should install Python and all required modules by yourself.

Another hint: If you upgrade your Linux distribution to a later version (like migrating from AlmaLinux 8 to AlmaLinux 9), please check the Python version provided by the new distribution. If in doubt, de-install Python and re-install like described below.

Please be aware that the MariaDB database driver of Python 3.11 does not support MariaDB before version 10.6.10. Therefore, please upgrade MariaDB if you use an older version.

RHEL:

First, install some required development packages:

dnf install gcc gcc-c++
dnf install libgcrypt-devel libxml2-devel openssl-devel bzip2-devel glibc-langpack-en.x86_64
dnf install gdbm-devel libffi-devel ncurses-devel
dnf install readline-devel sqlite-devel zlib-devel xz-devel

Package glibc-langpack-en.x86_64 is needed because of bug “LC_ALL: cannot change locale (en_US.UTF-8)”.

Package gdbm-devel is no longer included in the standard repository for RHEL 9. The CRB repository needs to be enabled for this. On AlmaLinux 9, this can be done with

dnf config-manager --set-enabled crb
dnf install gdbm-devel

Install Python 3.11 and the default version of Python 3 with package manager and development packages:

dnf install python3.11 python3.11-devel python3.11-pip python3-devel python3-pip

SLES (valid for SLES 15 SP4 to SP6):

At first, install some required development packages:

zypper install -y gawk gcc gcc-c++ gdbm-devel libbz2-devel libdb-4_8-devel libffi-devel libxml2-devel libnsl-devel libopenssl-devel libuuid-devel make ncurses-devel readline-devel sqlite3-devel tar wget xz-devel zlib-devel

List the available extensions with

suseconnect -list-extensions

Search for a suitable extension with a name like Python 3 Module 15 SP4 x86_64. The entry also lists how to activate this extension, in this case:

SUSEConnect -p sle-module-python3/15.4/x86_64

Now you can install all Python 3.11 packages that are required by EMM:

zypper install python311 python311-pip python311-devel python311-dbm