générer un grand nombres de sujets

Les propositions de correctifs ou d'exercices pour Pyromaths.

Modérateur : Développeurs

ffoperso
Messages : 14
Inscription : 09 sept. 2016, 18:44

générer un grand nombres de sujets

Message par ffoperso » 09 sept. 2016, 19:51

Bonjour,

je débute avec pyromath
je souhaiterai créer un grand nombres de sujets différents environ 90 avec latex
avce la version 15.02 du logiciel il n'y a que la génération d'un fichier .tex
est-il possible d'en générer un grand nombre ?
quelqu'un aurait-il déjà fait cela ?
merci

spalax
Messages : 86
Inscription : 20 juil. 2011, 02:23
Localisation : Isère
Contact :

Re: générer un grand nombres de sujets

Message par spalax » 09 sept. 2016, 21:30

Bonjour,
j'avais créé un outil pour faire des tests, qui permet de faire ce que tu veux. Par contre (pour le moment ?) il n'est pas packagé, donc il faut faire ça à partir des sources. Il s'appelle `testexos.py` et il est situé dans le répertoire `src`. Avec ça, tu peux faire :

Code : Tout sélectionner

# Liste tous les exercices disponibles
$ ./testexos.py lsexos
...
sixiemes.ProduitPuissanceDix
lycee.cercle_trigonometrique
sixiemes.QuestionsAbscisses

# Générer un exercice
$ ./testexos.py create lycee.cercle_trigonometrique

# À l'aide !
$ ./testexos.py create -h
-- Louis

ffoperso
Messages : 14
Inscription : 09 sept. 2016, 18:44

Re: générer un grand nombres de sujets

Message par ffoperso » 10 sept. 2016, 14:53

Merci pour ton aide louis,
j'avoue ne pas bien savoir par quel bout le prendre ...
si j'ai bien compris c python qui génère les fichier tex
donc je dois créer un script python qui fait cela ?
Mais le fichier testexos.py me retourne des erreurs à la compilation je retourne chercher ;-)

spalax
Messages : 86
Inscription : 20 juil. 2011, 02:23
Localisation : Isère
Contact :

Re: générer un grand nombres de sujets

Message par spalax » 11 sept. 2016, 16:41

ffoperso a écrit : (...) donc je dois créer un script python qui fait cela ?
Pas forcément ; un script shell, voire une unique commande, peut suffire. Il faudrait que je comprenne exactement ce que tu veux faire pour t'aider plus (est-ce que tu veux créer 90 fichiers pdf avec le même exo (avec des valeurs numériques différentes) ? Avec des exos différents ? Avec plusieurs exos par fichier ? Etc. ?)
ffoperso a écrit :Mais le fichier testexos.py me retourne des erreurs à la compilation je retourne chercher ;-)
Pareil ici… Pourtant, ça marchait… Je trouverai peut-être du temps mardi soir pour corriger ça. Suspens…

-- Louis

ffoperso
Messages : 14
Inscription : 09 sept. 2016, 18:44

Re: générer un grand nombres de sujets

Message par ffoperso » 11 sept. 2016, 18:00

Bonjour louis,

L'objectif est de créer un devoir maison avec correction :
4 exercices de types différents ( identités remarquables,factorisations, puissance, équations)
mais pour chacun des 90 élèves des valeurs numériques différentes) donc 90 versions différentes

pour les erreurs de compilation j'ai trouvé ligne 296 : print (exo_id) il manquait les parenthèses passage version python 2 à 3 ;-)
j'ai une erreur ligne 34 : gettext.install('pyromaths', unicode=1)
merci de ton aide
Fred

spalax
Messages : 86
Inscription : 20 juil. 2011, 02:23
Localisation : Isère
Contact :

Re: générer un grand nombres de sujets

Message par spalax » 13 sept. 2016, 21:12

ffoperso a écrit : L'objectif est de créer un devoir maison avec correction :
4 exercices de types différents ( identités remarquables,factorisations, puissance, équations)
mais pour chacun des 90 élèves des valeurs numériques différentes) donc 90 versions différentes
Je n'ai pas créé `testexo` pour ce but, mais il doit pouvoir servir à ça. :)
ffoperso a écrit : pour les erreurs de compilation j'ai trouvé ligne 296 : print (exo_id) il manquait les parenthèses passage version python 2 à 3 ;-)
Tient… Il ne me semblait pas que Pyromaths fonctionnait en Python3… N'hésite pas à proposer des patchs si tu corriges des erreurs.
ffoperso a écrit : j'ai une erreur ligne 34 : gettext.install('pyromaths', unicode=1)
Il faudra que je regarde ça.

Finalement, je n'ai pas le temps de voir ça ce soir. Peut-être ce week-end (deux nouveaux niveaux, prof principal pour la première fois, et un bébé à la maison : ça laisse peu de temps derrière l'ordinateur…).

-- Louis

spalax
Messages : 86
Inscription : 20 juil. 2011, 02:23
Localisation : Isère
Contact :

Re: générer un grand nombres de sujets

Message par spalax » 16 sept. 2016, 21:27

Bonsoir,
pour l'erreur, ça fonctionne chez moi. Aucun problème du côté de pyromaths, mais le paquet LaTeX asymptote doit être installé. Sous debian (et sans doute ses dérivés) :

Code : Tout sélectionner

sudo apt-get install asymptote
Pour la génération en masse de sujets, j'ai fait les modifications nécessaires : https://github.com/Pyromaths/pyromaths/ ... 63d8b5e2a0. Pour générer un sujet :

Code : Tout sélectionner

./testexo.py compile cinquiemes.reperage cinquiemes.produits_fractions cinquiemes.priorites
Pour générer 90 sujets, de manière déterministe (l'appel deux fois de suite de cette commande produit exactement les mêmes exercices) :

Code : Tout sélectionner

for NUM in $(seq -w 90)
do
  ./testexo.py compile -o dm$NUM.pdf cinquiemes.reperage:$NUM cinquiemes.produits_fractions:$NUM cinquiemes.priorites:$NUM
done
Exercice et correction sont générés dans le même PDF. Si tu as besoin de PDF séparés, il faut encore améliorer le code.

Si tu as des questions, n'hésite pas.

-- Louis

PS : À un moment donné, peut-être qu'on voudra renommer `testexo.py` en `pyromaths-cli`…

ffoperso
Messages : 14
Inscription : 09 sept. 2016, 18:44

Re: générer un grand nombres de sujets

Message par ffoperso » 25 sept. 2016, 15:44

ça ne marche pas de mon côté ...
j'ai des erreurs de compilation en python
je vais essayé de modifier le template en .tex et de générer 90 sujets avec pyro mais
il doit y avoir un moyen plus élégant !

spalax
Messages : 86
Inscription : 20 juil. 2011, 02:23
Localisation : Isère
Contact :

Re: générer un grand nombres de sujets

Message par spalax » 25 sept. 2016, 20:22

Peux-tu exécuter cette commande, et copier ici la sortie (et les erreurs) ?

Code : Tout sélectionner

./testexo.py compile cinquiemes.reperage cinquiemes.produits_fractions cinquiemes.priorites

ffoperso
Messages : 14
Inscription : 09 sept. 2016, 18:44

Re: générer un grand nombres de sujets

Message par ffoperso » 28 sept. 2016, 15:25

oui, j'ai l'erreur suivante
File "C:\Program Files (x86)\pyromaths\src\testexo.py", line 35, in <module>
gettext.install('pyromaths', unicode=1)
TypeError: install() got an unexpected keyword argument 'unicode'

ffoperso
Messages : 14
Inscription : 09 sept. 2016, 18:44

Re: générer un grand nombres de sujets

Message par ffoperso » 28 sept. 2016, 16:16

J'ai réinstallé python au cas ou ...;-)
je n'ai plus l'erreur précédente ?
je vais dans program file x86 puis pyromath puis src
je trouve le fichier testexo.py
je l'ouvre avec idle et je le run
là je devraispouvoir compiler donc je tape compile cinquiemes.reperage cinquiemes.produits_fractions cinquiemes.priorites
et il bloque sur cinquièmes qui est bien présent
que se passe t-il ?
merci de ton aide

ffoperso
Messages : 14
Inscription : 09 sept. 2016, 18:44

Re: générer un grand nombres de sujets

Message par ffoperso » 28 sept. 2016, 16:33

j'ai toujours l'erreur Traceback (most recent call last):
File "C:\Program Files (x86)\pyromaths\src\testexo.py", line 35, in <module>
gettext.install('pyromaths', unicode=1)
TypeError: install() got an unexpected keyword argument 'unicode'

alors que l'erreur dans le print a été rectifié ... merci de lire un "padawan" qui rame ;-))

spalax
Messages : 86
Inscription : 20 juil. 2011, 02:23
Localisation : Isère
Contact :

Re: générer un grand nombres de sujets

Message par spalax » 28 sept. 2016, 22:06

testexo ne fonctionne pas (pas encore ?) avec Python3. Réessaye avec python2.7. Si ça ne fonctionne pas, copie le message d'erreur (même si c'est le même que le précédent) et donne moi la version de python que tu utilises (avec "python --version").

ffoperso
Messages : 14
Inscription : 09 sept. 2016, 18:44

Re: générer un grand nombres de sujets

Message par ffoperso » 28 sept. 2016, 22:27

avec Python 2.7.12 (v2.7.12:d33e0cf91556, Jun 27 2016, 15:24:40) [MSC v.1500 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>>
=============== RESTART: C:/Users/frederic/Desktop/testexo.py ===============

Traceback (most recent call last):
File "C:/Users/frederic/Desktop/testexo.py", line 37, in <module>
from pyromaths.ex.test import TestPerformer, TestException, compile
ImportError: No module named pyromaths.ex.test

spalax
Messages : 86
Inscription : 20 juil. 2011, 02:23
Localisation : Isère
Contact :

Re: générer un grand nombres de sujets

Message par spalax » 29 sept. 2016, 12:24

Ce qui me surprends est le chemin de testexo.py qui apparait dans ta console :

Code : Tout sélectionner

  File "C:/Users/frederic/Desktop/testexo.py", line 37, in <module>
Le programme `testexo` ne fonctionne pas de façon autonome : il a besoin de l'ensemble de pyromaths pour fonctionner. Du coup, ce qu'il faut faire, c'est :
  • télécharger le code de pyromaths (la branche develop), soit avec git, soit comme un ZIP (bouton « Clone or download » de la page github de pyromaths https://github.com/Pyromaths/pyromaths).
  • si tu as téléchargé l'archive, la dézipper (si tu as fait un git clone, rien de particulier à faire)
  • te placer dans le dossier "CHEMIN/VERS/PYROMATHS/src" (celui qui contient les fichiers pyromaths.py et testexo.py : https://github.com/Pyromaths/pyromaths/tree/develop/src)
  • lancer la commande :

    Code : Tout sélectionner

    python testexo.py compile cinquiemes.reperage cinquiemes.produits_fractions cinquiemes.priorites
Est-ce que tu travailles en ligne de commande, ou utilises-tu une autre manière de lancer testexo.py ? Si oui, laquelle ?

Pour copier les messages d'erreur (de préférence avec la commande que tu as utilisées pour obtenir ce message d'erreur), tu peux utiliser la balise [code]Mon message d'erreur[/code] : ça va respecter les sauts de lignes et les espaces, et rendre le message plus lisible.

-- Louis

Répondre