4.2.1 Command Summary for Building and Installing Python for Linux for On-Premises Databases

The commands used to build and install Python for Linux for On-Premises Databases are listed in the following example.

Example 4-1 Build and Install Python on Oracle Linux 7

sudo yum install perl-IPC-Cmd perl-Digest-SHA

tar -xvzf openssl-3.0.12.tar.gz
cd openssl-3.0.12
mkdir dist
export OPENSSL_HOME=<full-path-to-openssl-3.0.12>

tar -xvzf openssl-3.0.12.tar.gz
cd openssl-3.0.12
mkdir dist
export OPENSSL_HOME=<full-path-to-openssl-3.0.12>

./Configure enable-fips –prefix=$OPENSSL_HOME/dist/openssl --openssldir=$OPENSSL_HOME/dist/ssl
make clean; make
make install

ls dist/openssl/lib64
ls dist/ssl

mkdir -p $ORACLE_HOME/python
tar -xvzf Python-3.12.0.tgz --strip-components=1 -C $ORACLE_HOME/python

export PYTHONHOME=$ORACLE_HOME/python
cd $PYTHONHOME

mkdir $PYTHON_HOME/include $PYTHONHOME/ssl
cp -r $OPENSSL_HOME/dist/openssl/lib64/* $PYTHONHOME/lib
cp -r $OPENSSL_HOME/dist/ssl/* $PYTHONHOME/ssl
cp -r $OPENSSL_HOME/include/openssl $PYTHONHOME/include

cd $ORACLE_HOME/python
sudo yum install perl-Env libffi-devel openssl openssl-devel tk-devel xz-devel zlib-devel bzip2-devel readline-devel libuuid-devel ncurses-devel

./Configure --enable-shared OPT=‘-fwrapv -O3 -Wall’ --prefix=$PYTHONHOME --with-openssl=$PYTHONHOME --with-openssl-rpath=$PYTHONHOME/lib
make clean; make
make altinstall

ln -s $PYTHONHOME/bin/python3.12 $PYTHONHOME/bin/python3

export LD_LIBRARY_PATH=$PYTHONHOME/lib:$LD_LIBRARY_PATH
export PATH=$PYTHONHOME/bin:$PATH

python3
import ssl
print(sys.executable)

Example 4-2 Build and Install Python on Oracle Linux 8

wget https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tgz

mkdir -p $ORACLE_HOME/python
tar -xvzf Python-3.12.0.tgz --strip-components=1 -C $ORACLE_HOME/python

cd $ORACLE_HOME/python
sudo yum install perl-Env libffi-devel openssl openssl-devel tk-devel xz-devel zlib-devel bzip2-devel readline-devel libuuid-devel ncurses-devel

cd $ORACLE_HOME/python
./Configure --enable-shared --prefix=$ORACLE_HOME/python

make clean; make
make altinstall

export PYTHONHOME=$ORACLE_HOME/python
export PATH=$PYTHONHOME/bin:$PATH
export LD_LIBRARY_PATH=$PYTHONHOME/lib:$LD_LIBRARY_PATH

cd $ORACLE_HOME/python/bin
ln -s python3.12 python3

python3 -m pip install --upgrade pip

python3
import sys
print(sys.executable)