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
Install Python 3.11 and the default version of Python 3 with package manager and development packages:
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
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:
Now you can install all Python 3.11 packages that are required by EMM: