Appendices:Python
W I P
Contents
Generality
Limitations of this section
This section does not claim to handle all possible Python installation cases …
The principle is to have the correct version and its dependencies for the SQWarePredict module.
Before you start the installation, you must first have the version of dbSQWare with SQWarePredict (v2025.01 mini) to have the dependencies.
Principle
We are going to :
- Install Python-3.12.8
- Setup the environnement
- Install dependencies
- Setup and test SQWarePredict
Installing
Installing Python-3.12.8
# Install Python-3.12.8 # https://www.python.org/ftp/python/3.12.8/Python-3.12.8.tgz
# From : root@vmsqwarebox ## For the compilation of Python dnf install -y zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel findutils ncurses-devel # From : dbsqware@vmsqwarebox mkdir -p $HOME/dbSQWare/SQWarePredict/python-src mkdir -p $HOME/dbSQWare/SQWarePredict/python/3.12.8
Rsource recovery for an installation with internet access
Download the sources and put them in/tmp :
# From : dbsqware@vmsqwarebox cd /tmp wget https://www.python.org/ftp/python/3.12.8/Python-3.12.8.tgz cd $HOME/dbSQWare/SQWarePredict/python-src tar -xzvf /tmp/Python-3.12.8.tgz
Download the source for an installation with internet access
Download sources from https://support.dbsqware.com/view.php?id=497 and put them in /tmp :
# From : dbsqware@vmsqwarebox cd $HOME/dbSQWare/SQWarePredict tar -xzvf /tmp/python-src.tgz cd python-src tar -xzvf Python-3.12.8.tgz
Build
cd $HOME/dbSQWare/SQWarePredict/python-src/Python-3.12.8 # configure, dest => $HOME/dbSQWare/SQWarePredict/python/3.12.8 ./configure --prefix=$HOME/dbSQWare/SQWarePredict/python/3.12.8 --enable-optimizations
checking build system type... x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu checking for python3.9... python3.9 checking for --enable-universalsdk... no checking for --with-universal-archs... no ... config.status: creating pyconfig.h configure: creating Modules/Setup.local configure: creating Makefile
# compil make
Running code to generate profile data (this can take a while): # First, we need to create a clean build with profile generation # enabled. make profile-gen-stamp make[1]: Entering directory '$HOME/dbSQWare/SQWarePredict/python-src/Python-3.12.8' make clean make[2]: Entering directory '$HOME/dbSQWare/SQWarePredict/python-src/Python-3.12.8' find . -depth -name '__pycache__' -exec rm -rf {} ';' ... Checked 111 modules (31 built-in, 74 shared, 1 n/a on linux-x86_64, 0 disabled, 5 missing, 0 failed on import) make[1]: Leaving directory '/home/dbsqware/dbSQWare/SQWarePredict/python-src/Python-3.12.8'
# install make install
Creating directory $HOME/dbSQWare/SQWarePredict/python/3.12.8/bin Creating directory $HOME/dbSQWare/SQWarePredict/python/3.12.8/lib if test "no-framework" = "no-framework" ; then \ /usr/bin/install -c python $HOME/dbSQWare/SQWarePredict/python/3.12.8/bin/python3.9; \ ... ... Installing collected packages: setuptools, pip WARNING: The scripts pip3 and pip3.9 are installed in '$HOME/dbSQWare/SQWarePredict/python/3.12.8/bin' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location. Successfully installed pip-23.0.1 setuptools-58.1.0
# creation des liens python et pip cd $HOME/dbSQWare/SQWarePredict/python/3.12.8/bin ln -s python3 python ln -s pip3 pip
Environnement update
Changes for ~dbsqware/.bash_profile
# env Python 3.12.8 (for SQWarePredict) export PATH=$HOME/dbSQWare/SQWarePredict/python/3.12.8/bin:$PATH export LD_LIBRARY_PATH=$HOME/dbSQWare/SQWarePredict/python/3.12.8/lib:$LD_LIBRARY_PATH
# on sourcve le .bash_profile . $HOME/.bash_profile # check the PATH dbsqware@vmsqwarebox:$HOME $ type python python is $HOME/dbSQWare/SQWarePredict/python/3.12.8/bin/python dbsqware@vmsqwarebox:$HOME $ type pip pip is $HOME/dbSQWare/SQWarePredict/python/3.12.8/bin/pip
# check the versions dbsqware@vmsqwarebox:$HOME $ python --version Python 3.12.8 dbsqware@vmsqwarebox:$HOME $ pip --version pip 24.3.1 from $HOME/dbSQWare/SQWarePredict/python/3.12.8/lib/python3.12/site-packages/pip (python 3.12)
## Setting up the Python env python -m venv $HOME/dbSQWare/SQWarePredict/python/SQWarePredict-python-env-3.12.8 cd $HOME/dbSQWare/SQWarePredict/python ll SQWarePredict-python-env-3.12.8 ln -s SQWarePredict-python-env-3.12.8 SQWarePredict-python-env . $HOME/dbSQWare/SQWarePredict/python/SQWarePredict-python-env/bin/activate
dbsqware@vmsqwarebox:$HOME $ type python python is $HOME/dbSQWare/SQWarePredict/python/SQWarePredict-python-env-3.12.8/bin/python dbsqware@vmsqwarebox:$HOME $ type pip pip is $HOME/dbSQWare/SQWarePredict/python/SQWarePredict-python-env-3.12.8/bin/pip dbsqware@vmsqwarebox:$HOME $ python --version Python 3.12.8 dbsqware@vmsqwarebox:$HOME $ pip --version pip 24.3.1 from $HOME/dbSQWare/SQWarePredict/python/SQWarePredict-python-env-3.12.8/lib/python3.12/site-packages/pip (python 3.12)
(SQWarePredict-python-env-3.12.8) dbsqware@srvdbsqware04:$HOME $ pip list Package Version ------- ------- pip 24.3.1
Installing dependencies
Please note, you must have activated the "SQWarePredict-python-env" environment !
#Enable the environment (if not already done!) . $HOME/dbSQWare/SQWarePredict/python/SQWarePredict-python-env/bin/activate
Installation of dependencies with internet access
# dependencies pip (SQWarePredict-python-env-3.12.8) dbsqware@srvdbsqware04:$HOME/dbSQWare/SQWarePredict/python $ pip install --upgrade pip setuptools wheel
Requirement already satisfied: pip in ./SQWarePredict-python-env-3.12.8/lib/python3.12/site-packages (24.3.1) Collecting setuptools Downloading setuptools-75.8.0-py3-none-any.whl.metadata (6.7 kB) Collecting wheel Downloading wheel-0.45.1-py3-none-any.whl.metadata (2.3 kB) Downloading setuptools-75.8.0-py3-none-any.whl (1.2 MB) ???????????????????????????????????????? 1.2/1.2 MB 14.4 MB/s eta 0:00:00 Downloading wheel-0.45.1-py3-none-any.whl (72 kB) Installing collected packages: wheel, setuptools, pip Attempting uninstall: pip Found existing installation: pip 24.3.1 Uninstalling pip-24.3.1: Successfully uninstalled pip-24.3.1 Successfully installed pip-25.0.1 setuptools-75.8.0 wheel-0.45.1
# Installing dependencies cd $HOME/dbSQWare/SQWarePredict/engine/ pip install .
Processing $HOME/dbSQWare/SQWarePredict/engine Installing build dependencies ... done Getting requirements to build wheel ... done Preparing metadata (pyproject.toml) ... done Collecting contourpy==1.3.1 (from SQWarePredict==1.0) .... .... Stored in directory: /tmp/pip-ephem-wheel-cache-l9urxsek/wheels/fb/0f/e3/8209d088cd9c825dd311fd9cbf83a320192744186bdc99b5ec Successfully built SQWarePredict Installing collected packages: pytz, tzdata, toml, six, python-dotenv, pyparsing, pillow, packaging, numpy, mysql-connector-python, kiwisolver, fonttools, cycler, scipy, python-dateutil, patsy, contourpy, pandas, matplotlib, statsmodels, seaborn, SQWarePredict Successfully installed SQWarePredict-1.0 contourpy-1.3.1 cycler-0.12.1 fonttools-4.55.3 kiwisolver-1.4.8 matplotlib-3.10.0 mysql-connector-python-9.1.0 numpy-2.2.1 packaging-24.2 pandas-2.2.3 patsy-1.0.1 pillow-11.1.0 pyparsing-3.2.1 python-dateutil-2.9.0.post0 python-dotenv-1.0.1 pytz-2024.2 scipy-1.15.0 seaborn-0.13.2 six-1.17.0 statsmodels-0.14.4 toml-0.10.2 tzdata-2024.2
Installation of dependencies without internet access
# Dependancies pip (SQWarePredict-python-env-3.12.8) dbsqware@srvdbsqware04:$HOME/dbSQWare/SQWarePredict/python $ pip install --no-index --find-links=$HOME/dbSQWare/SQWarePredict/python-src/LocalPipPackages_SQWarePredict --upgrade pip setuptools wheel
Looking in links: /home/dbsqware/dbSQWare/SQWarePredict/python-src/LocalPipPackages_SQWarePredict Requirement already satisfied: pip in ./SQWarePredict-python-env-3.12.8/lib/python3.12/site-packages (24.3.1) Processing /home/dbsqware/dbSQWare/SQWarePredict/python-src/LocalPipPackages_SQWarePredict/pip-25.0.1-py3-none-any.whl Processing /home/dbsqware/dbSQWare/SQWarePredict/python-src/LocalPipPackages_SQWarePredict/setuptools-75.8.0-py3-none-any.whl Processing /home/dbsqware/dbSQWare/SQWarePredict/python-src/LocalPipPackages_SQWarePredict/wheel-0.45.1-py3-none-any.whl Installing collected packages: wheel, setuptools, pip Attempting uninstall: pip Found existing installation: pip 24.3.1 Uninstalling pip-24.3.1: Successfully uninstalled pip-24.3.1 Successfully installed pip-25.0.1 setuptools-75.8.0 wheel-0.45.1
# Install dependancies cd $HOME/dbSQWare/SQWarePredict/engine/ pip install --no-index --find-links=$HOME/dbSQWare/SQWarePredict/python-src/LocalPipPackages_SQWarePredict -r $HOME/dbSQWare/SQWarePredict/python-src/requirements.txt
Looking in links: /home/dbsqware/dbSQWare/SQWarePredict/python-src/LocalPipPackages_SQWarePredict Processing /home/dbsqware/dbSQWare/SQWarePredict/python-src/LocalPipPackages_SQWarePredict/contourpy-1.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (from -r /home/dbsqware/dbSQWare/SQWarePredict/python-src/requirements.txt (line 1)) Processing /home/dbsqware/dbSQWare/SQWarePredict/python-src/LocalPipPackages_SQWarePredict/cycler-0.12.1-py3-none-any.whl (from -r /home/dbsqware/dbSQWare/SQWarePredict/python-src/requirements.txt (line 2)) Processing /home/dbsqware/dbSQWare/SQWarePredict/python-src/LocalPipPackages_SQWarePredict/fonttools-4.55.3-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (from -r /home/dbsqware/dbSQWare/SQWarePredict/python-src/requirements.txt (line 3)) ... ... Processing /home/dbsqware/dbSQWare/SQWarePredict/python-src/LocalPipPackages_SQWarePredict/toml-0.10.2-py2.py3-none-any.whl (from -r /home/dbsqware/dbSQWare/SQWarePredict/python-src/requirements.txt (line 21)) Processing /home/dbsqware/dbSQWare/SQWarePredict/python-src/LocalPipPackages_SQWarePredict/tzdata-2024.2-py2.py3-none-any.whl (from -r /home/dbsqware/dbSQWare/SQWarePredict/python-src/requirements.txt (line 22)) Requirement already satisfied: wheel>=0.45.1 in ./SQWarePredict-python-env-3.12.8/lib/python3.12/site-packages (from -r /home/dbsqware/dbSQWare/SQWarePredict/python-src/requirements.txt (line 23)) (0.45.1) Requirement already satisfied: pip>=24.3.1 in ./SQWarePredict-python-env-3.12.8/lib/python3.12/site-packages (from -r /home/dbsqware/dbSQWare/SQWarePredict/python-src/requirements.txt (line 24)) (25.0.1) Installing collected packages: pytz, tzdata, toml, six, python-dotenv, pyparsing, pillow, packaging, numpy, mysql-connector-python, kiwisolver, fonttools, cycler, scipy, python-dateutil, patsy, contourpy, pandas, matplotlib, statsmodels, seaborn Successfully installed contourpy-1.3.1 cycler-0.12.1 fonttools-4.55.3 kiwisolver-1.4.8 matplotlib-3.10.0 mysql-connector-python-9.1.0 numpy-2.2.1 packaging-24.2 pandas-2.2.3 patsy-1.0.1 pillow-11.1.0 pyparsing-3.2.1 python-dateutil-2.9.0.post0 python-dotenv-1.0.1 pytz-2024.2 scipy-1.15.0 seaborn-0.13.2 six-1.17.0 statsmodels-0.14.4 toml-0.10.2 tzdata-2024.2
Dependancies check
# Check des dépendances pip list Package Version ---------------------- ----------- contourpy 1.3.1 cycler 0.12.1 fonttools 4.55.3 kiwisolver 1.4.8 matplotlib 3.10.0 mysql-connector-python 9.1.0 numpy 2.2.1 packaging 24.2 pandas 2.2.3 patsy 1.0.1 pillow 11.1.0 pip 25.0.1 pyparsing 3.2.1 python-dateutil 2.9.0.post0 python-dotenv 1.0.1 pytz 2024.2 scipy 1.15.0 seaborn 0.13.2 setuptools 75.8.0 six 1.17.0 statsmodels 0.14.4 toml 0.10.2 tzdata 2024.2 wheel 0.45.1
Setup and test SQWarePredict
Setup SQWarePredict
# Configuring access to the DB (you can create a new account or use the one from SQWareCentral!) cd $HOME/dbSQWare/SQWarePredict/engine cat sqwarepredict.ini # Credentials for SQWarePredict [db] MysqlHost="localhost" MysqlUser="sqware_predict" MysqlPass="SQWarePredict1234." MysqlDb="dbsqware_db" MysqlPort=3306
Test de SQWarePredict
# Activation de l'env et test de 'Predict' . $HOME/dbSQWare/SQWarePredict/python/SQWarePredict-python-env/bin/activate cd $HOME/dbSQWare/SQWarePredict/engine python -m bin.predict -i sql -f $HOME/dbSQWare/SQWarePredict/param/generic/InstanceGrowth_size.ini -l Instance=SQWareCentral NbMonth=24 -m 6
Enable/Disable the Python environment
# Enable the Python environment . $HOME/dbSQWare/SQWarePredict/python/SQWarePredict-python-env/bin/activate ## You have (SQWarePredict-python-env-3.12.8) which is displayed before the prompt ! # Disable the Python environment (deactivate is declared when sourcing the env) deactivate ##You find your original prompt