Nous allons voir dans ce tutoriels quelles sont les bonnes pratiques pour agencez un projet Python en vue de le partager et de le déployer.
Que ce soit pour un logiciel, une librairie, une interface graphique type web app ou mobile app, si vous souhaitez partager votre travail, il vous faut l’organiser et le documenter correctement.
Vous pouvez appliquer ces pratiques sur le projet Moniteur Série
Créer un environnement virtuel
Lorsque vous souhaitez créer un projet que vous allez partager et maintenir sur le long terme, il est primordiale de l’intégrer dans un environnement virtuel afin d’isoler ses dépendances (librairies utilisées, versions, etc.).
Sous Windows, assurez-vous que la version de python que vous utilisez peut être appelé avec python.exe
python -m pip install python3-venv
–> pour installerpython -m venv venv
–> créer un environnement virtuelsource venv/bin/activate
–> activer l’environnementdeactivate
–> désactiver l’environnement
N.B.: Sous Windows, pour ouvrir la console à l’endroit voulu, vous pouvez créer un fichier start_console.bat dans lequel vous copier la commande
start cmd.exe
Vous pouvez exécuter le fichier avec un double-clic pour ouvrir le terminal
Une fois l’environnement créé, vous pouvez rajouter ou supprimer des paquets
pip install <package_name>
pip install <package_name>==<version>
pip uninstall <package_name>
Et garder une trace des paquets et versions utilisés dans le fichier requirements.txt
pip freeze > requirements.txt
Architecture de dossier d’un projet Python
D’après les recommandations de Kenneth Reitz, voici la structure de dossier à adopter.
- Si votre projet ne comprends qu’un fichier
helloworld/
│
├── .gitignore
├── helloworld.py
├── LICENSE
├── README.md
├── requirements.txt
├── setup.py
└── tests.py
- Pour des projets plus complexes contenant différents modules
sample
│
├── docs
│ ├── conf.py
│ ├── index.rst
├── sample
│ ├── __init__.py
│ ├── core.py
│ ├── helpers.py
├── tests
│ ├── test_basic.py
│ ├── test_advanced.py
├── LICENSE
├── README.md
├── requirements.txt
├── setup.py
N.B.: Pour afficher l’arborescence de votre dossier, vous pouvez utiliser la commande tree /f à la racine du projet
Vous êtes, en pratique, assez libre pour créer l’architecture de dossier. L’important est que ce soit fonctionnel, modulable et organisé.
Voici une description des fichiers essentiels de l’architecture
- sample.py ou sample: contient le code source avec un ou plusieurs module
- README: description du projet, guide d’installation, source et exemple. Évolutions éventuelles
- LICENSE: contient licence et copyrights sous lesquelles vous publiez le code
- requirements.txt: contient toutes les dépendances et version que nécessitent le script
- setup.py : gère la distribution et la construction du projet Python
- docs: contient la documentation du projet
- tests: contient les scripts de test du projet
Une fois cette architecture mise en place, vous pouvez l’utilisez et l’adapter pour tous vos projets Python