This is the practical cases for Python training I provide. Intended for french trainee, the rest of the explanations are in French. English
Ce référentiel complète la formation que je propose et est donc destiné à mes stagiaires.
La Documentation github est disponible.
Ces sources sont organisées pour proposer des exemples de code sur les thèmes couverts par les formations de base Python. Elles respectent avec quelques adaptations l'organisation d'un package.
En fonction de vos compétences et outils à disposition, vous pouvez soit cloner le projet soit le récupérer sous forme d'une archive.
Le projet peut être dans l'arborescence que vous souhaitez sur votre disque.
Ce projet est un projet de formation. Sa structure ne suit donc pas la structure conventionnelle d'un projet Python. L'organisation des répertoires est la suivante :
- assets : contient des fichiers qui seront nécessaires pour le parcours et la manipulation de fichiers.
- demos : est un package contenant des fichiers de démonstration et d'illustration. Ce package contient également des exemples Tkinter.
- exos : est votre répertoire de travail. Il est destiné à contenir le code que vous allez produire durant la formation et vous permettre de le retrouver dans cet emplacement unique.
Voici les étapes à suivre pour préparer l'environnement. Ces étapes ne prennent pas en compte l'IDE. Vous trouverez le détail à la suite.
- Assurez-vous de disposer d'une version de Python récente accessible dans le path. Dans l'idéal, vous devriez être dans la dernière ou avant-dernière version de Python.
- Créez et activez un environnement virtuel si besoin en suivant la documentation de venv.
- Installez les dépendances par
pip install -r requirements.txt. - Récupérez la dernière release au format wheel (extension
.whl) du projet pyschool-lib - Installez cette dépendance avec une commande similaire
à
pip install "pyschoollib-0.2.0-py3-none-any.whl"
Vous êtes prêt à travailler.
Python doit être installé sur votre poste.
La formation est prévue pour toutes les versions de Python maintenues (voir le statut des versions).
Python ainsi que les dépendances doivent être dans le PATH. Vous pouvez vérifier le bon fonctionnement dans un terminal/invite de commande par les instructions du type
python --version
pip --version
ou
python3 --version
pip3 --version
Python ne nécessite aucun IDE en particulier.
Les environnements conseillés sont PyCharm et Visual Studio Code.
PyCharm est un environnement dédié à Python, il intègre donc un certain nombre d'outils. PyCharm existe en version licenciée ou Community, cette dernière, gratuite et complète, convient amplement à la formation.
VS Code nécessite l'installation d'un plug-in pour la prise en charge de Python.
Un environnement virtuel permet d'isoler l'environnement du projet de votre environnement système. Il permet ainsi d'éviter les conflits de dépendance et facilite l'exécution des programmes Python indépendamment des versions de l'interpréteur.
Créer un environnement virtuel n'est pas indispensable dans le cadre de cette formation en particulier si vous utilisez une machine dédiée à la formation.
Si vous utilisez PyCharm, il vous proposera de créer automatiquement un environnement virtuel.
Si vous avez besoin d'information sur leur création et utilisation, vous pouvez consulter la documentation.
pip est le gestionnaire de dépendances qui va vous permettre d'installer les dépendances nécessaires à ce projet.
Attention : pip utilise des ports dédiés pour communiquer avec les
dépôts. Si vous êtes derrière un Firewall, il sera nécessaire de lui
communiquer le proxy.
Vous pouvez installer une dépendance spécifique avec l'instruction
pip install ipythonCette commande permet d'installer la dépendance ipython.
Les dépendances nécessaires au projet sont déclarées dans le fichier
requirements.txt. Vous pouvez donc installer l'ensemble des dépendances avec
la commande :
pip install -r requirements.txtVous devez en plus installer une dépendance proposée par votre intervenant, bibliothèque qui fournit des fonctionnalités pour les exercices.
Cette bibliothèque est le projet pyschool-lib. Allez
sur la page des releases, choisissez la
dernière et téléchargez le fichier .whl. Il doit avoir un nom de la
forme pyschoollib-0.2.0-py3-none-any.whl. Vous allez l'installer avec l'instruction
pip install "pyschoollib-0.2.0-py3-none-any.whl"Attention évidemment à adapter le nom avec la version en cours.
Votre environnement est alors prêt à l'emploi.
Si vous êtes sur un environnement POSIX (Linux ou MacOs) ou plus généralement si vous utilisez
l'outil make, vous pouvez utiliser le makefile fourni :
make setup: met à jourpipet installe toutes les dépendances.make clean: supprime le répertoiredatacréé par une démo.
Certains fichiers ont l'extension .ipynb. Il s'agit de documents de type
Jupyter Notebooks générés à l'aide de Jupyter. Pour
pouvoir les consulter, vous devez installer la dépendance Jupyter. Celle-ci est incluse dans
le fichier requirements-xtra.txt, vous pouvez donc l'installer avec la même instruction que
précédemment.
Pour accéder à ces documents, il faut lancer le serveur Jupyter par l'instruction :
jupyter notebook
Notez que le projet Jupyter évolue, cette évolution s'appelle JupyterLab. Cette dépendance est
différente et doit être installée à part. Cependant, elle est également déclarée dans le fichier
requirements-xtra.txt.
Pour le lancer, vous devez exécuter :
jupyter-lab
Un bon projet est accompagné d'une bonne documentation… Dans le cadre de ce projet, la
documentation est générée par Material for MkDocs.
L'ensemble des fichiers de documentation sont dans le répertoire docs/ et sont au format rst. Vous
pouvez donc consulter les documents directement dans vos IDEs, PyCharm et VS Code ont un panneau
de prévisualisation.
Mkdocs propose un serveur web local qui permet de consulter la doc de manière dynamique.
Après vous êtes assuré d'avoir installé les dépendances (mkdocs-materialqui est dans le fichier
requirements_xtra.txt), dans une invite de commande, exécutez :
mkdocs serveLe log de lancement vous indiquera à quelle adresse vous pouvez consulter la doc (normalement,
http://127.0.0.1:8000/).
Si vous souhiatez la modifier et voir la mise à jour de vos documents, exécutez :
mkdocs serve --livereloadVous pouvez générer le site de documentation avec la commande :
mkdocs buildL'ensemble des fichiers sera disponible dans le répertoire site/.
Un projet Python est accompagné d'un fichier requirements.txt déclarant les dépendances de
développement nécessaires au projet.
Les dépendances dans ce fichier sont les suivantes :
- ipython : il s'agit d'un shell intéractif avancé préféré au shell intéractif standard.
- Pytest : utilisé pour la partie tests unitaires
- Pytz : utilisé pour la gestion des TimeZone des dates (cette bibliothèque est obsolète depuis la 3.9)
- flake8 : outil de validation statique de code
- pylint : outil d'analyse statique de code
Un fichier requirements-xtra.py contient les dépendances optionnelles. Notez que celles-ci
peuvent être volumineuses (donc prendront du temps et de l'espace disque).
- jupyter-lab : est l'évolution du projet Jupyter. Il sera utilisé pour ses notebooks,
documents d'illustration. Cette dépendance installera également le shell intéractif
avancé
ipython. - rich : bibliothèque destinée à un affichage de texte riche, c'est-à-dire avec couleur et styles, ainsi que du contenu avancé comme des tableaux.
- questionary : bibliothèque destinée à avoir une intéraction dans l'invite de commande.
- Material for MkDocs pour la documentation.
Les démos de ce projet contiennent également des exemples d'IHM avec PySide6. Les programmes de formation proposent en général une introduction aux interfaces graphiques avec TkInter mais il y a des demandes pour une bibliothèque plus aboutie. L'installation devra être faite manuellement, en particulier du fait de la taille (plus de 450Mo téléchargé pour plus de 1Go sur disque…)
- PySide6 : à installer avec
pip install PySide6
Durant la formation, des ressources complémentaires peuvent être disponibles sur le partage suivant
Les exercices sont disponibles sur le wiki du projet.