Kivy est un cadriciel (framework) graphique, permettant de développer des interfaces tactiles (ou utilisable à la souris) sur toutes les plateformes, y compris mobiles. Il s'accompagne d'une suite de logiciels très pratiques que nous allons présenter ici.
PyConFR 2025, à Lyon du 30 octobre au 2 novembre
L’Association Francophone Python (AFPy) organise la PyConFR 2025 du jeudi 30 octobre au dimanche 2 novembre. Pour cette 16e édition, nous sommes accueillis par le Campus René Cassin de Lyon !
PyConFR 2024, planning et inscriptions
La PyConFR 2024 a lieu du jeudi 31 octobre au dimanche 3 novembre à l’UFR Mathématique et d’Informatique de Strasbourg. Le planning est disponible et les inscriptions sont ouvertes !
Comme toujours, la PyConFR est un évènement gratuit et l’inscription est obligatoire.
Les deux premiers jours de la conférence seront occupés par les sprints. Et les deux jours suivants seront dédiés aux conférences (longues et courtes) et ateliers.
Trois keynotes sont également au programme :
- De villageoise à l’itWoman… Quelles actions pour faire de mon rêve TECH une réalité ?, par Houleymatou Baldé
- Recherche des bonnes pratiques de packaging, par Françoise Conil
- Reality is not an end-to-end prediction problem: Applied NLP in the age of Generative AI, par Ines Montani
Cette année, un espace enfants (de 3 ans à 12 ans) est mis à disposition gratuitement sur inscription. Vous pouvez inscrire vos enfants jusqu’au 15 octobre.
Durant cette édition, c’est aussi le retour du déjeuner PyLadies. Un des objectifs est de tisser des liens entre la communauté PyLadies et le reste de la communauté Python francophone.
Les inscriptions au déjeuner PyLadies sont ouvertes jusqu’au 27 octobre.
Le dimanche matin, l'AFP y tiendra son assemblée générale. Si vous souhaitez y voter, assurez vous d'être à jour de cotisation.
Mise à jour de VenC en version 3.2.2
VenC, un générateur libre (GPLv3) de site statique en python qui avait déjà été présenté dans une dépêche précédente, est de retour en version 3.2.2 avec tout un tas de nouvelles fonctionnalités cool qu’on va voir ici.
PyConFR 2024, du 31 octobre au 3 novembre à Strasbourg
L’Association Francophone Python (AFPy) organise la PyConFR 2024 du jeudi 31 octobre au dimanche 3 novembre. Pour cette 15e édition, nous sommes accueillis par l’UFR Mathématique et d’Informatique de Strasbourg (https://mathinfo.unistra.fr/) !
Si vous ne connaissez pas la PyConFR, c’est un évènement gratuit sur 4 jours autour du langage de programmation Python. Tout d’abord, il y a deux jours de développements participatifs (sprints), puis deux jours de conférences et ateliers.
Vous pouvez proposer un sujet de sprint, de conférence ou d’atelier jusqu’au 21 juillet. Peu importe votre niveau en Python, n’hésitez pas à proposer un sujet ! Venez parler de développement logiciel, de diversité, de communauté, faire un retour d’expérience sur un outil, présenter votre projet, un domaine d’activité…
Dans un secteur aussi masculin que le développement informatique, nous proposons aux personnes habituellement peu représentées en conférence de l’aide pour trouver un sujet, rédiger la proposition de conférence, rédiger le support de conférence et pour répéter. Vous pouvez nous contacter à l’adresse diversite@afpy.org si vous pensez en avoir besoin.
Enfin, la PyConFR est entièrement financée par les sponsors. Si vous connaissez des sponsors potentiels, n’hésitez pas à leur parler de l’évènement !
VenC 3.1.1 | Un nouveau générateur de site statique
On va présenter ici un nouveau générateur de site statique, écrit en python. Il n’est pas exactement nouveau au sens où nous en sommes à la version 3, mais jusqu’ici le projet est resté relativement confidentiel. Nous parlerons également des perspectives d’évolution de ce projet.
L'installation et la distribution de paquets Python (2/4)
Cette dépêche est la deuxième d’une série de quatre sur le packaging en Python :
- L’histoire du packaging Python
- Tour de l’écosystème actuel
- Le casse-tête du code compilé
- La structure de la communauté en question
Je vais donc proposer un aperçu plus ou moins complet des différents outils, et de ce qu’ils font ou ne font pas, en essayant de les comparer. Mais je parlerai aussi des fichiers de configuration, des dépôts où les paquets sont publiés, des manières d’installer Python lui-même, et de l’interaction de tout ceci avec les distributions Linux. En revanche, je laisse de côté pour l’instant les paquets écrits en C, C++ ou Rust et la complexité qu’ils apportent.
L’installation et la distribution de paquets Python (1/4)
Quelques dépêches précédentes ont parlé des outils de packaging Python, comme ici, là ou encore là. Je vais chercher à faire un tour complet de la question, non seulement du point de vue de l’utilisateur qui cherche à comprendre quelle est « la bonne » solution (← ha ha ha rire moqueur…), mais aussi en expliquant les choix qui ont été faits, les évolutions, la structure de la communauté autour des outils, et les critiques qui leur sont souvent adressées, à tort ou à raison.
Programme de la PyConFR 23
La PyConFR, l'évènement de la communauté francophone du langage de programmation python, aura lieu du 16 au 19 février 2023 à Bordeaux. L'évènement est gratuit mais l'inscription au préalable est obligatoire.
Le programme vient de paraître, le sommaire des conférences, des ateliers et des sprints vous attend dans la suite de cette dépêche.
Conférence & Atelier PyConFr - du 16 au 19 février 2023 à Bordeaux
Quatre journées consacrées au langage Python, la PyConFr revient après deux ans d’absence pour proposer des Sprints, où l’on se retrouve à l’Université de Bordeaux pour coder ensemble le jeudi et vendredi, et des conférences le week-end afin de découvrir les expériences de chacun avec le langage Python.
L’accès est gratuit, ouvert à toutes et tous, cependant l’inscription préalable est nécessaire.
Des nouvelles de WeasyPrint, ou comment développer du libre à (presque) plein temps
WeasyPrint est un générateur de documents qui transforme du HTML/CSS en PDF. C’est écrit en Python, c’est libre (bah oui, sinon on n’en parlerait pas ici), et nous en avions déjà discuté ici il y a quelques années dans un petit article.
Avec le temps (plus de 11 ans depuis le premier commit, que le temps passe vite ma p’tite dame…), le logiciel a gagné une sacrée ribambelle d’utilisateurs avec plus de 750 000 téléchargements par mois. Parmi tous ces gens qui utilisent WeasyPrint, on a forcément rencontré plein de gens avec plein d’idées pour générer plein de drôles de trucs ! Nous avons croisé entre autres des rapports de sécurité informatique 🖥️, des livres de jeu de rôle 🎮️, des tickets 🎫️, des documents scientifiques 🧮️, des factures de sites de vente en ligne 📄️, des compte-rendus biologiques ⚛️, des modes d’emploi de fours 🧑🍳️, des lettres officielles 💌️, des étiquettes électroniques 🏷️, des affiches promotionnelles en pharmacies ⚕️, des diplômes universitaires 🎓️…
Forts de ce petit succès, Lucie Anglade et moi (Guillaume Ayoub) avons créé depuis deux ans une structure qui s’appelle CourtBouillon (oui, parce que notre autre passion est la bonne nourriture) dédiée au développement de WeasyPrint et de ses dépendances. Nous avons donc pu passer beaucoup de temps à travailler sur le logiciel et apporter plein de nouveautés, tout en nous posant beaucoup de questions pour assurer un modèle économique viable. Voilà ce que l’on aimerait partager avec vous.
PyPI déploie le système 2FA pour les projets critiques écrits en Python
PyPI (de l’anglais « Python Package Index ») est le dépôt tiers officiel du langage de programmation Python. Son objectif est de doter la communauté des développeurs Python d’un catalogue complet recensant tous les paquets Python libres.
Google, par l’intermédiaire de l’Open Source Security Foundation (OpenSSF) de la Linux Foundation, s’est attaqué à la menace des paquets malveillants et des attaques de la chaîne d’approvisionnement des logiciels open source. Elle a trouvé plus de 200 paquets JavaScript et Python malveillants en un mois, ce qui pourrait avoir des « conséquences graves » pour les développeurs et les organisations pour lesquelles ils écrivent du code lorsqu’ils les installent.
PyPI déploie le système 2FA (pour double authentification ou authentification à deux facteurs) pour les projets critiques écrits en Python.
Environnement moderne de travail Python
Environnement moderne de travail Python
Si vous développez ou utilisez des programmes s’exécutant au-dessus de l’interpréteur Python, il peut arriver que vous vous retrouviez avec un environnement très dégradé sur votre poste de travail..
Je propose ici de découvrir un ensemble d’outils permettant de configurer des environnements Python qui vous éviteront de polluer votre système ou vos futurs environnements de développement. En effet, entre votre système Linux et les multiples projets de développement sur lequel vous travaillez vous avez souvent besoin d’interpréteur Python dans des versions différentes ou de librairies dans des versions particulières.
Dans ce guide, nous allons voir comment installer un environnement Python répondant aux cas d’usage suivants :
- gestion facile de multiple versions de l’interpréteur Python ;
- isolation d’applications CLI basées sur Python ;
- création d’environnements de développement isolés les uns des autres.
Python pour la fin de l’année 2021
En 2019 Oliver commençait une série de dépêches sur le langage Python, série qu’il nous promettait pour la rentrée 2019. Divers aléas ont fait que cette série n’a pu être terminée qu’en juin 2021.
Et, comme cela forme un tout cohérent et qu’il y avait, dès le départ, l’idée de les réunir, l’aboutissement est un, en fait plutôt deux epub qui compilent les dépêches et leurs commentaires parce que la maison ne se refuse rien. Ils sont sur un dépôt github avec les images de couvertures en version svg et png. Idéalement, ils devraient être sur un dépôt plutôt LinuxFr que celui-là.
Vous n’échapperez, évidemment, pas aux petits secrets d’ateliers en fin de dépêche.
Décès de Fredrik Lundh (Effbot), auteur des bibliothèques PIL et Tkinter
Fredrik Lundh était un contributeur Python ayant créé les bibliothèques de traitement d’image PIL et de GUI Tkinter. Il était connu pour avoir mis en ligne le site de tutoriel effbot.org couvrant ces bibliothèques. Son décès a été annoncé le 10 décembre 2021 sur la liste de diffusion des développeurs principaux du langage Python.
Python 3.10 est disponible
Python 3.10 (rc1) est sorti le 2 août 2021, après quinze mois de développement (dont cinq à cheval sur les bêta et les rc de Python 3.9). Il reste deux mois avec des candidats (RC) avant la sortie définitive, prévue le 4 octobre 2021.
Voyons ce que cette version apporte comme nouveautés…
Python — partie 9 ― formateur de code, analyse statique
Cette dépêche est la suite d’une série sur Python initiée en septembre 2019. Après un sommeil cryogénique d’un an et demi, on repart en forme avec d’autres contenus Python à vous proposer : actualité, bonnes pratiques, astuces, témoignages… Elle a été rédigée principalement à deux voix, Oliver et Philippe, qui vous font part de leur expérience sur les fonctions.
Cette dixième partie présente les formateurs de code bien pratiques et les analyseurs de code. 🐍 🐍 🐍
Pour rappel, les autres dépêches déjà publiées :
- Python — Popularité
- Python — Python 2
- Python — Installation de Python et de paquets
- Python — Py Pyenv
- Python — Nix (et Guix)
- Python — Pip et Pipx
- Python — environnements virtuels
- Python — Pipenv
- Python — Entretiens
Python — partie 6 — Pip et Pipx
Cette dépêche est la suite d’une série sur Python initiée en septembre 2019. Après un sommeil cryogénique de un an et demi, on repart en forme avec d’autres contenus Python à vous proposer: actualité, bonnes pratiques, astuces, témoignages…
Cette sixième partie explique les inconvénients de pip
et présente l’alternative pipx
, le tout avec plein d’astuces et de conseils pour bien s’en sortir. 🚀 🐍
Pour rappel, les dépêches précédentes :
- Python — partie 1 parlait de la popularité explosive du langage Python
- Python — partie 2 évoquait la fin du support de Python 2
- Python — partie 3 parlait des différentes façons d’installer Python et des gestionnaires de paquets Python
-
Python — partie 4 vous présentait
py
etpyenv
pour faciliter la gestion de plusieurs versions de Python en parallèle sur un poste - Python — partie 5 vous faisait découvrir un autre moyen de gérer l’installation en parallèle de différentes versions de Python
Sortie de Flask 2.0.0
Flask est un micro‐cadriciel Web pour Python publié sous licence BSD. Il est conçu pour permettre une prise en main rapide et facile, tout en offrant la possibilité d'évoluer vers des applications complexes. Il a commencé comme une simple « enveloppe » autour de Werkzeug et Jinja et est devenu l'un des cadriciel web Python les plus populaires.
Flask suggère mais n'impose aucune dépendance ou plan de projet. C'est au développeur de choisir les outils et les bibliothèques qu'il souhaite utiliser. Il existe de nombreuses extensions fournies par la communauté qui facilitent l'ajout de nouvelles fonctionnalités.
La version 2 est sortie le 11 mai 2021 soit 3 ans après la version 1.
Python — partie 10 — Entretiens
Pour cette dépêche, nous donnons la parole à celles et ceux qui pratiquent le langage de programmation Python : des développeuses et développeurs de différents domaines, mais aussi d’autres métiers comme les scientifiques des données (data scientists), les scientifiques de l’apprentissage automatique (machine learning), les analystes quantitatifs (quant)… et bien d’autres…
Python — partie 8 — Pipenv
Cette dépêche est la suite d’une série sur Python initiée en septembre 2019. Après un sommeil cryogénique de un an et demi, on repart en forme avec d’autre contenu Python à vous proposer: actualité, bonnes pratiques, astuces, témoignages…
Cette huitième partie présente pipenv
, un outil pour s’abstraire de pip
et virtualenv
qui est mis en valeur par la PyPA (Python Packaging Autority). Puis nous finirons la dépêche par un cas pratique avec conteneurisation via Docker, le tout avec plein d’astuces et de conseils pour bien s’en sortir. 🚀 🐍
Pour rappel, les dépêches précédentes :
- Python - partie 1 parlait de la popularité explosive du langage Python ;
- Python - partie 2 évoquait la fin du support de Python 2 ;
- Python - partie 3 parlait des différentes façons d’installer Python et des gestionnaires de paquets Python ;
-
Python - partie 4 vous présentaient
py
etpyenv
pour faciliter la gestion de plusieurs versions de Python en parallèle sur un poste ; - Python — partie 5 qui dissertait de Nix (et Guix) ;
- Python — partie 7 évoquait les environnements virtuels Python et ses alternatives comme la conteneurisation, le tout avec plein d’astuces et de conseils pour bien s’en sortir.
Python — partie 5 — Nix (et Guix)
Dans les précédentes dépêches, nous avons discuté de la popularité de Python, la fin de la maintenance de Python 2, les différentes variantes de Python, comment les faire cohabiter avec Py et Pipenv…
Dans la continuité de la précédente dépêche, cette dépêche présente une autre approche pour faire cohabiter différentes versions de Python sur un même ordinateur : Nix. 🚀 🐍 💫
Python — partie 7 — Environnements virtuels
PySimpleGUI : prenez plaisir à faire des interfaces graphiques en Python
Je cherchais depuis longtemps un moyen simple de créer des interfaces graphiques pas trop compliquées pour mes scripts Python. Les approches objet et/ou à base de langages dédiés (sur base XML par exemple) m'avaient plutôt rebutées jusqu'à présent, et malheureusement celles-ci sont ultra majoritaires. J'avais eu du mal à rentrer dans tkinter ou pyQT par exemple, et à les utiliser de manière efficace.
C'est alors que j'ai découvert, récemment, PySimpleGUI, et que j'ai enfin réussi à être productif en matière d'interface graphique en Python !
PySimpleGUI est sous licence LGPLv3.
Développer une interface web avec le toolkit Atlas (2/2)
Le toolkit Atlas permet de programmer des interfaces d’applications web monopages (SPA) sans qu’il ne soit nécessaire de savoir programmer en JavaScript et sans imposer d’architecture logicielle. De plus, toute application développée avec le toolkit Atlas est, dès son lancement, instantanément et automatiquement accessible d’Internet.
Le toolkit Atlas s’apparente à ces bibliothèques qui, en s’appuyant sur GTK, Qt, wxWidgets…, ont pour but de faciliter le développement d’interfaces graphiques. La différence est que le toolkit Atlas, lui, s’appuie sur les technologies web (HTML/CSS).
Le toolkit Atlas est disponible pour Java, Node.js, Perl, Python et Ruby. Ce document porte sur le développement, avec la version Python du toolkit Atlas, d’une application dont voici un aperçu :