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