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.5 (25/09/2024).
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"
Dans la région AURA, il faut ajouter la date de naissance au format
JJ/MM/AAAA
:
DDN="JJ/MM/AAAA"
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.