tab2pronote.py
est une interface graphique écrite en python 3 qui permet de coller les notes et appréciations sur le site « PRONOTE » d’après une colonne de tableur. C’est un logiciel libre, distribué sous licence GPL v3.
tab2pronote.py
est un script écrit en python 3 qui génère une interface graphique permettant de coller les notes et appréciations sur le site « PRONOTE » d’après une colonne de tableur (libreOffice, MS excel ou autre).
tab2pronote.py
permet de :
tab2pronote.py
s’appuie sur :
une distribution python 3 avec les bibliothèques os
, sys
, tkinter
et selenium
;
un navigateur internet et son pilote. Je vous recommande l’utilisation de firefox et de son pilote geckodriver qui sont pour l’instant les seuls documentés.
C’est un logiciel libre, distribué sous licence GPL v3.
La dernière version est la 0.1.3 (30/04/2022).
Type | Fichier |
---|---|
code python | tab2pronote.py |
documentation | tab2pronote.pdf |
Pour utiliser tab2pronote.py
, il est nécessaire d’avoir sur son ordinateur personnel :
une distribution python 3 (version ) ;
>>> import platform
>>> platform.python_version()
'3.9.2'
la bibliothèque python (interface graphique) ;
>>> import tkinter
>>> tkinter.TkVersion
8.6
et la bibliothèque python (gestion du navigateur) ;
>>> import selenium
>>> selenium.__version__
'4.0.0a1'
Si vous avez une des bibliothèques dans une version précédente, faites une mise à niveau avec votre gestionnaire pip
avec l’option -U
ou , par exemple :
>>> pip install pip --upgrade
>>> pip install selenium --upgrade
ou avec conda
avec l’option update
, par exemple :
>>> conda update conda
>>> conda update selenium
un navigateur et son pilote à utiliser avec Selenium with python:
Navigateur | URL où trouver le pilote |
---|---|
Chrome | https://sites.google.com/a/chromium.org/chromedriver/downloads |
Edge | https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/ |
Firefox | https://github.com/mozilla/geckodriver/releases |
Safari | https://webkit.org/blog/6900/webdriver-support-in-safari-10/ |
Je vous recommande l’utilisation de firefox et de son pilote geckodriver qui sont des logiciels libres performants et dont l’utilisation par tab2pronote.py
est la seule qui soit documentée. En fonction de la version de selenium disponible dans vos dépots, prenez les versions du pilote geckodriver et de firefox adaptées.
geckodriver | firefox | selenium |
---|---|---|
v0.31.0 | >= 91 | >= 3.14 |
v0.30.0 | 78<=90 | 3.14<=4.0 |
v0.29.0 | 60<=90 | 3.14<=4.0 |
v0.25.0 | 57<=90 | 3.14<=4.0 |
v0.20.1 | 55<=62 | >= 3.5 |
Voir ici pour la liste complète.
Pour utiliser tab2pronote.py
avec pyzo et Miniconda avec MS Windows, il faut :
télécharger et installer firefox ;
en faire le navigateur par défaut ;
télécharger et installer pyzo :
https://github.com/pyzo/pyzo/releases
https://github.com/pyzo/pyzo/releases/download/v4.11.2/pyzo-4.11.2-win64.exe
pour windows 7, préférez la version 4.9.0
:
https://github.com/pyzo/pyzo/releases/download/v4.9.0/pyzo-4.9.0-win64-windows7.exe
télécharger et installer Miniconda 3 :
https://repo.continuum.io/miniconda/Miniconda3-latest-Windows-x86_64.exe
ouvrir pyzo en mode administrateur (clic-droit> exécuter en tant qu’administrateur) ;
choisir miniconda comme distribution python (cliquer sur use this env...
) ;
installer la bibliothèque selenium
en tapant dans le shell python :
conda install selenium
répondre oui (y
) pour confirmer l’installation des dépendances ;
installer la bibliothèque tkinter
en tapant dans le shell python :
conda install tkinter
ou, pour les versions les plus récentes :
conda install -c anaconda tk
répondre oui (y
) pour confirmer l’installation des dépendances ;
fermer pyzo et le relancer en mode « normal » ;
télécharger le driver gecko
sur github :
https://github.com/mozilla/geckodriver/releases/download/v0.31.0/geckodriver-v0.31.0-win64.zip
décompresser l’archive et mettre le fichier geckodriver.exe
dans un répertoire, par exemple pronote
;
ouvrir le fichier tab2pronote.py
et éditer la ligne :
plugin="C:\\le\\long\\chemin\\de\\pronote\\geckodriver.exe"
qui permet de renseigner la localisation du driver gecko
;
toujours dans le fichier tab2pronote.py
, vérifier et si besoin éditer la ligne :
exe_navigateur="C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"
qui permet de renseigner la localisation de l’éxécutable du navigateur (ici firefox, avec une installation par défaut) ;
renseigner enfin (si voulu, fonctionne sans) vos identifiants de connexion à l’ENT :
login="Identifiant"
password="MotDePasse"
Pour utiliser tab2pronote.py
avec pyzo et Anaconda avec Mac OS X, il faut :
télécharger et installer pyzo :
https://github.com/pyzo/pyzo/releases
https://github.com/pyzo/pyzo/releases/download/v4.11.2/pyzo-4.11.2-macos.dmg
télécharger et installer Anaconda :
https://repo.continuum.io/archive/Anaconda3-4.1.1-MacOSX-x86_64.pkg
ouvrir pyzo et choisir anaconda comme distribution python (cliquer sur use this env...
) ;
installer la bibliothèque selenium
en tapant dans le shell python :
conda install selenium
répondre oui (y
) pour confirmer l’installation des dépendances ;
fermer pyzo ;
télécharger le driver gecko
sur github:
https://github.com/mozilla/geckodriver/releases/download/v0.31.0/geckodriver-v0.31.0-macos.tar.gz
décompresser l’archive et mettre le fichier geckodriver
dans un répertoire, par exemple pronote
;
ouvrir le fichier tab2pronote.py
et éditer la ligne :
plugin="/usr/$(whoami)/chemin/de/pronote/geckodriver"
qui permet de renseigner la localisation du driver gecko
;
toujours dans le fichier tab2pronote.py
, vérifier et si besoin éditer la ligne :
exe_navigateur="/Applications/Firefox.app/Contents/MacOS/firefox"
qui permet de renseigner la localisation de l’éxécutable du navigateur (ici firefox, avec une installation par défaut) ;
renseigner enfin (si voulu, fonctionne sans) vos identifiants de connexion à l’ENT :
login="Identifiant"
password="MotDePasse"
Attention Un bug graphique empêche l’exécution des objets tkinter avec pyzo alors qu’ils fonctionnent très bien depuis un terminal. Pour contourner ce problème sans avoir à lancer de terminal, il est possible de créer un lanceur. Pour ce faire :
lancer une recherche de l’éditeur AppleScript
en cliquant sur la loupe en haut à droite ;
éditer le code suivant :
tell application "Terminal"
activate
do script "python3 /usr/$(whoami)/chemin/de/pronote/tab2pronote.py"
end tell
en modifiant l’emplacement de votre dossier pronote
dans lequel figure le script tab2pronote.py
;
vérifier le bon fonctionnement en cliquant sur Éxécuter
puis sauvegarder votre script comme une application à partir de l’AppleScript
:
Fichier--Exporter
;Format de fichier
, sélectionner Application
et laisser tout le reste décoché ;Enregistrer
.Le lanceur (raccourci) est alors créé est permet de lancer le script tab2pronote.py
en double-cliquant dessus.
Pour utiliser tab2pronote.py
avec une distribution GNU/Linux de base Debian (Ubuntu, Mint, etc), incluant python3
, il faut :
installer les bibliothèques tkinter
et selenium
en tapant dans un terminal :
sudo apt-get install python3-tk python3-selenium
avec votre gestionnaire de paquets préféré ;
télécharger le driver gecko
sur github :
https://github.com/mozilla/geckodriver/releases/download/v0.31.0/geckodriver-v0.31.0-linux64.tar.gz
décompresser l’archive et mettre le fichier geckodriver
dans un répertoire, par exemple pronote
;
ouvrir le fichier tab2pronote.py
et éditer la ligne :
plugin="/usr/$(whoami)/chemin/de/pronote/geckodriver"
qui permet de renseigner la localisation du driver gecko
;
toujours dans le fichier tab2pronote.py
, vérifier et si besoin éditer la ligne :
exe_navigateur="/usr/bin/firefox"
qui permet de renseigner la localisation de l’éxécutable du navigateur (ici firefox, avec une installation par défaut) ;
renseigner enfin (si voulu, fonctionne sans) vos identifiants de connexion à l’ENT :
login="Identifiant"
password="MotDePasse"
jouer du chmod +x
pour le rendre exécutable et se faire un lien symbolique vers /home/$(whoami)/bin
avec ln -s
.
Selon votre lycée, il peut être nécessaire de passer par un ENT pour se connecter au site de PRONOTE ou non.
Dans le cas où vous devez passer par un ENT, il faut renseigner dans le fichier tab2pronote.py
les variables URL["ENT"]
, URL["ENT_login"]
et URL["pronote"]
, par exemple :
lycée Jules Ferry, Versailles
URL["ENT"] = "https://ent.iledefrance.fr"
URL["ENT_login"] = "https://ent.iledefrance.fr/auth/login"
URL["pronote"] = "https://0782565p.index-education.net/pronote/"
Dans les cas où vous devez vous connecter directement au site de PRONOTE, il suffit de renseigner dans le fichier tab2pronote.py
la variable URL["pronote"]
, par exemples :
lycée Gustave Eiffel, Dijon
URL["pronote"] = "https://0211033j.index-education.net/pronote/"
lycée Jean Perrin, Lyon
URL["pronote"] = "https://0690082p.index-education.net/pronote/"
en veillant à bien laisser vide la chaine de caractères de la variable URL["ENT"]
utilisée en paramètre dans le script pour moduler l’affichage.
Il est évidemment possible de lire les identifiants de connexion à PRONOTE ou à l’ENT dans un fichier chiffré, par exemple avec GnuPG
:
from subprocess import check_output
password=check_output("gpg -dq identifiants.gpg", shell=True).decode('UTF-8').splitlines()[0]
ou alors avec pass
:
from subprocess import check_output
password=check_output("pass identifiants", shell=True).decode('UTF-8').splitlines()[0]
L’idée du script tab2pronote.py
est d’accéder aux cellules d’un tableau dans lequel sont affichées les notes ou appréciations. La colonne correspondant au nouveau devoir créé est identifiée par la position du curseur avant de rentrer les notes. L’ordre des actions correspond à celui des boutons et indications données dans l’interface graphique.
Exécuter le script tab2pronote.py
.
Le navigateur doit s’ouvrir sur la page de connexion de PRONOTE ou de l’ENT ;
se connecter si vous n’avez pas saisi vos identifiant et mot de passe dans le script ;
dans le cas où vous êtes connécté via un ENT, cliquer sur PRONOTE
pour aller sur le site PRONOTE du lycée ;
une fois connecté à « PRONOTE » :
pour coller les notes :
Coller les notes
) ;pour coller les appréciations :
Coller les appréciations
) ;se déconnecter de « PRONOTE » ;
si besoin, cliquer sur le bouton ENT
pour revenir sur l’ENT pour se déconnecter et se déconnecter du site ;
cliquer sur le bouton Quitter
pour fermer le navigateur et quitter l’application.
ABS
sur la première ligne de votre colonne de notes ou appréciations, de les coller sur « PRONOTE ».gecko
Je remercie Stéphanie Cassan (MS Windows 8/pyzo/firefox), Pascal Cartron (MS Windows 10/pyzo/firefox), Virgile Lacharnay (Mac OS X/pyzo/firefox) et Laurent Pater (GNU/Linux/firefox) pour leur aide précieuse au développement du script tab2pronote.py
et à sa documentation.