Synology NAS : Installation de Pyramid 2



Sur mon Synology NAS DS218play, Python 3.9 est installé d'office avec le système DSM 7.1 :

Il ne reste qu'à suivre la documentation Installing Pyramid pour installer Pyramid.

Installation de Pyramid

Utiliser venv pour créer un espace de travail baptisé pyramid dans home/phuoc:

sudo apt install python3.10-venv
python3 -m venv pyramid

Puis, installer pip pour pouvoir installer plus tard les paquets python :

cd pyramid
source bin/activate
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && python get-pip.py

Installer Pyramid par pip :

pip install "pyramid==2.0"

Créer un projet

Une fois le framework installé, créer un projet Pyramid. Pour cela, installer le nouveau cookiecutter :

cd pyramid
python3 -m pip install cookiecutter

Puis, l'utiliser pour générer le projet monapp utilsant le gabarit alchemy fourni par Pyramid. Ce gabarit va créer ce qu'il faut pour utiliser SQLAlchemy pour l'accès à une base de données SQL et la méthode URL Dispatch pour mapper les URL au code :

cookiecutter gh:Pylons/pyramid-cookiecutter-starter --checkout 2.0-branch
project_name [Pyramid Scaffold]: **my_app**
repo_name [my_app]: **my_app**
Select template_language:
1 - jinja2
2 - chameleon
3 - mako
Choose from 1, 2, 3 [1]: **1**
Select backend:
1 - none
2 - sqlalchemy
3 - zodb
Choose from 1, 2, 3 [1]: **2**

===============================================================================

Installer my_app en mode développement

cd my_app
pip install -e .

Initialiser la base de donnée SQLite

Avant de pouvoir lancer l'application pour tester, il faudrait d'abord initialiser la base de données SQLite.

../bin/initialize_my_app_db.exe development.ini

Puis lancer l'application :

pserve development.ini --reload

Lancer l'application en tant que service

Créer le fichier mon_app.service suivant dans le répertoire /usr/lib/systemd/system :

# cd /lib/systemd/system

[Unit]
Description=CAO Blog app
After="network.target"
Requires="network.target"

[Service]
WorkingDirectory=/volume1/homes/ctphuoc/pyramid/cao_blogr
ExecStart=/volume1/homes/ctphuoc/pyramid/bin/pserve /volume1/homes/ctphuoc/pyramid/cao_blogr/production.ini

[Install]
WantedBy=multi-user.target

Tester le service en lançant :

systemctl start mon_app.service
systemctl stop mon_app.service
systemctl status mon_app.service

Un fois le script est bien testé, activer le service lors du démarrage du NAS en lançant :

systemctl enable mon_app.service

That's it


Publié le : 26-04-2023 - 00:20