Difference between revisions of "Appendices:Python"

From Wiki_dbSQWare
Jump to: navigation, search
m (Installing Python-3.12.8)
m (Build)
Line 81: Line 81:
 
</pre>
 
</pre>
  
<syntaxhighlight lang="sh" line>
+
<pre>
 
# compil
 
# compil
 
make
 
make
</syntaxhighlight>
+
</pre>
  
 
<pre>
 
<pre>
Line 103: Line 103:
 
</pre>
 
</pre>
  
<syntaxhighlight lang="sh" line>
+
<pre>
 
# install
 
# install
 
make install
 
make install
</syntaxhighlight>
+
</pre>
  
 
<pre>
 
<pre>
Line 121: Line 121:
 
</pre>
 
</pre>
  
<syntaxhighlight lang="sh" line>
+
<pre>
 
# creation des liens python et pip
 
# creation des liens python et pip
 
cd $HOME/dbSQWare/SQWarePredict/python/3.12.8/bin
 
cd $HOME/dbSQWare/SQWarePredict/python/3.12.8/bin
 
ln -s python3 python
 
ln -s python3 python
 
ln -s pip3 pip
 
ln -s pip3 pip
</syntaxhighlight>
+
</pre>
  
 
===Environnement update===
 
===Environnement update===

Revision as of 17:17, 7 April 2025

W I P

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 <syntaxhighlight lang="sh" line>

  1. 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 </syntaxhighlight>

<syntaxhighlight lang="sh" line>

  1. on sourcve le .bash_profile

. $HOME/.bash_profile


  1. 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

</syntaxhighlight>

<syntaxhighlight lang="sh" line>

  1. 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)

</syntaxhighlight>

<syntaxhighlight lang="sh" line>

    1. 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

</syntaxhighlight>

<syntaxhighlight lang="sh" line> 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)

</syntaxhighlight>

<syntaxhighlight lang="sh" line> (SQWarePredict-python-env-3.12.8) dbsqware@srvdbsqware04:$HOME $ pip list

Package Version


-------

pip 24.3.1

</syntaxhighlight>

Installation des dépendances

Attention, il faut avoir activé l'environnement "SQWarePredict-python-env" !

<syntaxhighlight lang="sh" line>

  1. Activation de l'env (si pas déjà fait !)

. $HOME/dbSQWare/SQWarePredict/python/SQWarePredict-python-env/bin/activate </syntaxhighlight>

Installation des dépendances avec accès internet

<syntaxhighlight lang="sh" line>

  1. Dépendances pip

(SQWarePredict-python-env-3.12.8) dbsqware@srvdbsqware04:$HOME/dbSQWare/SQWarePredict/python $ pip install --upgrade pip setuptools wheel </syntaxhighlight>

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

<syntaxhighlight lang="sh" line>

  1. Install dependances

cd $HOME/dbSQWare/SQWarePredict/engine/ pip install .

</syntaxhighlight>

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 des dépendances sans accès internet

<syntaxhighlight lang="sh" line>

  1. Dépendances 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 </syntaxhighlight>

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

<syntaxhighlight lang="sh" line>

  1. Install dependances

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

</syntaxhighlight>

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

Check des dépendances

<syntaxhighlight lang="sh" line>

  1. Check des dépendances

pip list

</syntaxhighlight>

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

Paramétrer et tester SQWarePredict

Paramétrage de SQWarePredict

<syntaxhighlight lang="sh" line>

  1. Paramétrage des accès à la db (vous pouvez créer un nouveau compte ou utiliser celui de SQWareCentral !)

cd $HOME/dbSQWare/SQWarePredict/engine cat sqwarepredict.ini </syntaxhighlight>

# Credentials for SQWarePredict

[db]
MysqlHost="localhost"
MysqlUser="sqware_predict"
MysqlPass="SQWarePredict1234."
MysqlDb="dbsqware_db"
MysqlPort=3306

Test de fonctionnement

<syntaxhighlight lang="sh" line>

  1. 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

</syntaxhighlight>

Activer/désactiver l'environnement Python

<syntaxhighlight lang="sh" line>

  1. Activation de l'environnement Python

. $HOME/dbSQWare/SQWarePredict/python/SQWarePredict-python-env/bin/activate

    1. Vous avez (SQWarePredict-python-env-3.12.8) qui s'affiche avant le prompt !
  1. Désactivation de l'environnement Python (deactivate se déclare lors du source de l'env)

deactivate

    1. Vous retrouvez votre prompt d'origine

</syntaxhighlight>