Effectuer du calcul formel dans un QCM AMC

Added by Joss OUIN almost 5 years ago

Bonjour à tous,

Je viens de terminer une vidéo qui détaille le mode opératoire pour effectuer du calcul formel afin de générer des questions et des réponses calculées automatiquement dans AMC.

Voici l'entrée dans le Wiki d'AMC :
Lien : https://project.auto-multiple-choice.net/projects/auto-multiple-choice/wiki/Calcul_formel_avec_Python_dans_AMC

Tous les fichiers associés sont disponibles dans la description de la vidéo.

Belle journée à tous.
🌴 José OUIN 🌴


Replies (67)

RE: Effectuer du calcul formel dans un QCM AMC - Added by Frédéric Bréal over 4 years ago

Vous avez toujours la même erreur après installation de sympy ?

oui avec python3-sympy : toujours des ??
mais avec python-sympy : l'erreur est réparée.

RE: Effectuer du calcul formel dans un QCM AMC - Added by Frédéric Bréal over 3 years ago

Bonjour,
Je relance ce sujet car avec ma nouvelle installation (xubuntu et Texlive 2020 vanille) cela ne fonctionne pas.
J'ai dû installer les paquets sympy et pygments suite à un test en ligne de commande.
Le lien ci-dessous montre que en ligne de commande cela fonctionne mais pas avec AMC.

https://www.swisstransfer.com/d/92969abc-75ff-45f4-badd-c3d820965f38

Si vous avez des idées de solution.

amc-compiled.log (24.7 kB)

AMC-DEBUG-UGX3VyN1.log (30.3 kB)

source.tex (885 Bytes)

RE: Effectuer du calcul formel dans un QCM AMC - Added by Frédéric Bréal over 3 years ago

À Joss OUIN : pourriez-vous me dire comment vous avez installé les modules perl (sympy, pygments…) ? Via synaptic ou pip ?
Pourriez-vous ajouter dans votre exemple (vidéo youtube) la commande \listfile dans le préambule puis compiler avec AMC et poster le log afin que je compare avec ma machine (xubuntu 18.04) ?
Merci

RE: Effectuer du calcul formel dans un QCM AMC - Added by Joss OUIN over 3 years ago

Bonjour Gérard et bonjour à tous,

J'ai installé ces modules avec Synaptic (cela me semble plus simple car je n'ai pas une grande maîtrise d'Ubuntu).
Il faut que je retrouve le fichier en question (celui de la vidéo) et que je le compile. Je vous tiens informé.

A bientôt.
Joss.

RE: Effectuer du calcul formel dans un QCM AMC - Added by Joss OUIN over 3 years ago

Bonjour Gérard et bonjour à tous,

J'ai une erreur si je mets \listfile dans le préambule du fichier "tex". Je l'ai donc retiré.
Je viens de faire un essai et ... cela ne compile plus !

Et puis je me suis rappelé que dans une précédente version d'AMC, il fallait indiquer le chemin complet vers le fichier de compilation.
Et maintenant cela compile.

J'ai mis le chemin complet en en-tête de fichier "tex" :

%%AMC:preprocess_command=/media/ouin-j/OS/__1AA_CLOUD/UBUNTU/LINUX/Videos_Latex/Demo_Simpy-v2_AMC/prePythonTex4AMC
%%AMC:jobspecific=1
%%AMC:latex_engine=pdflatex --shell-escape

J'ai la version d'AMC suivante : 1.4.0+git2020-08-24

Pour ceux que cela intéresse, je vous joins mes fichiers.

A votre service pour d'autres essais.
Belle soirée à vous.
Joss.

AMC-DEBUG-ZrtcASFE.log - Fichier LOG (215.8 kB)

Simpy__demovideo_4.tex - Fichier source "tex" (4.9 kB)

prePythonTex4AMC - Fichier de compilation Python (avec le chemin d'accès) (276 Bytes)

RE: Effectuer du calcul formel dans un QCM AMC - Added by Frédéric Bréal over 3 years ago

En fait c'est \listfiles, ma faute

Et puis je me suis rappelé que dans une précédente version d'AMC, il fallait indiquer le chemin complet vers le fichier de compilation.

aaaaaaah, j'aurais dû tester mais j'avais mis le le fichier directement dans le dossier du QCM.
En tout cas, ça fonctionne.
Je suis content. Je vais pouvoir mettre à jour la documentation.
Grand merci.

RE: Effectuer du calcul formel dans un QCM AMC - Added by Frédéric Bréal over 3 years ago

Est-ce que je peux prendre votre fichier tex comme exemple pour la doc ?

RE: Effectuer du calcul formel dans un QCM AMC - Added by Joss OUIN over 3 years ago

Bonjour,

Bien sûr ! Tous les fichiers sont à la disposition de tous.
Content d'avoir pu être utile.
Belle soirée à tous,
Joss.

RE: Effectuer du calcul formel dans un QCM AMC - Added by Joss OUIN over 3 years ago

aaaaaaah, j'aurais dû tester mais j'avais mis le le fichier directement dans le dossier du QCM.

Placer le fichier "prePythonTex4AMC" dans le dossier du QCM AMC ne suffit pas depuis les dernières versions d'AMC. Il faut en plus indiquer le chemin complet en en-tête du fichier "tex".

Bonne soirée.
Joss.

RE: Effectuer du calcul formel dans un QCM AMC - Added by Joachim Lebovits about 3 years ago

Bonsoir à tous,

J'ai également un problème avec l'utilisation de python et AMC. Je précise que je suis novice en python (et un peu aussi en AMC).
J'ai téléchargé les fichiers de Joss ouin disponibles sur youtube.
J'ai rendu exécutable le fichier prePythonTex4AMC.
Tout fonctionne très bien tant que je ne suis pas sur AMC. Donc j'ai bien les 5 exemplaires sans ? après la compilation pdflatex puis python puis pdflatex (avec la console).
En revanche quand je crée un nouveau projet sur AMC en prenant le fichier TeX dans un dossier où il se compilait bien, en y ajoutant le fichier prePythonTex4AMC et en updatant ensuite le projet j'ai toujours les points d'interrogation.
Je ne comprends absolument pas pourquoi.
Est-ce que quelqu'un aurait une idée?

Je précise que je suis sur MAC OS Catalina, que j'utilise TeXShop 2020.

Merci

Ps: j'ajoute le fichier log du fichier TeX du projet mais je pense qu'il sera inutile vu que lui compile bien...

RE: Effectuer du calcul formel dans un QCM AMC - Added by Alexis Bienvenüe about 3 years ago

Pouvez-vous préparer de nouveau les documents de travail en mode débogage (depuis le menu Aide), et poster le fichier log produit (dont le nom commence par AMC-DEBUG) ?

RE: Effectuer du calcul formel dans un QCM AMC - Added by Joachim Lebovits about 3 years ago

Bonsoir,

En passant en mode débogage (depuis le menu aide) j'ai une fenêtre qui s'ouvre et surlaquelle est écrit:

Debugging mode. Debugging informations will be written in file /var/folders/3h/gn1bjg6s4_j6n1q_s44hkbhr0000gq/T/AMC-DEBUG-_qdN7ajm.log.

Lorsque je met à jour le document et que je cherche dans mon ordinateur le fichier gn1bjg6s4_j6n1q_s44hkbhr0000gq/T/AMC-DEBUG-_qdN7ajm.log impossible de le trouver. Idem si je cherche suelement AMC-DEBUG. Je n'ai aucun fichier de ce nom là et pourtant j'ai bien activé le fenêtre d'aide.
En attendant, je joins la copie de Command Output Details. Merci pour votre aide:

RE: Effectuer du calcul formel dans un QCM AMC - Added by Alexis Bienvenüe about 3 years ago

Dans un terminal, que renvoie la commande suivante ?

ls -R /var/folders/3h/gn1*

RE: Effectuer du calcul formel dans un QCM AMC - Added by Joachim Lebovits about 3 years ago

Le résultat ne passe pas, ni dans le corps du message ni en pièce jointe. Je le mets donc en lien dropbox
https://www.dropbox.com/s/km5j65fctb5cma5/R%C3%A9sultat%20du%20Terminal.txt?dl=0

RE: Effectuer du calcul formel dans un QCM AMC - Added by Alexis Bienvenüe about 3 years ago

Le résultat ne passe pas

Il s'agit bien des deux lignes qui sont dans votre fichier Résultat du Terminal.txt ?

RE: Effectuer du calcul formel dans un QCM AMC - Added by Joachim Lebovits about 3 years ago

Non en fait je n'arrivais pas à me débarasser de la pièce jointe.
Le résultat de la commande
ls -R /var/folders/3h/gn1*
tapée dans le terminal se trouve en suivant le lien ci-desosus:

https://www.dropbox.com/s/km5j65fctb5cma5/R%C3%A9sultat%20du%20Terminal.txt?dl=0

Désolé pour la confusion.

RE: Effectuer du calcul formel dans un QCM AMC - Added by Alexis Bienvenüe about 3 years ago

Bon je ne comprends pas trop où est ce fichier DEBUG, et il va malheureusement ma manquer pour analyser la situation…

RE: Effectuer du calcul formel dans un QCM AMC - Added by Joachim Lebovits about 3 years ago

Est-ce qu'on peut demander à AMC de choisir l'endroit où il met le fichier debug?

RE: Effectuer du calcul formel dans un QCM AMC - Added by Alexis Bienvenüe about 3 years ago

Oui, en le lançant avec la commande

auto-multiple-choice gui --debug-file /chemin/du/fichier/log

RE: Effectuer du calcul formel dans un QCM AMC - Added by Joachim Lebovits about 3 years ago

Ah formidable merci!
Le voici

log (176.1 kB)

RE: Effectuer du calcul formel dans un QCM AMC - Added by Alexis Bienvenüe about 3 years ago

[ 68185, 0.23] Working directory: /Users/jlebovits/Dropbox/Mon Mac (iMac-de-info-3.local)/Desktop/AEssais/F/Fiatlux
[ 68185, 0.23] Calling preprocess command: ./prePythonTex4AMC DOC-filtered.tex
[ 68185, 0.23] Calling cmd: ./prePythonTex4AMC DOC-filtered.tex
[ 68185, 0.23] Can't find command: ./prePythonTex4AMC

En attendant mieux, vous pouvez placer votre fichier prePythonTex4AMC dans un répertoire sans espaces dans son chemin (par exemple simplement /Users/jlebovits/, et indiquer le chemin complet :

%%AMC:preprocess_command=/Users/jlebovits/prePythonTex4AMC

RE: Effectuer du calcul formel dans un QCM AMC - Added by Joss OUIN about 3 years ago

Bonjour à tous,

J'ai peut-être une solution (qui a fonctionné pour moi) qui consiste à indiquer le chemin complet du fichier "prePythonTex4AMC" dans l'en-tête du fichier ".tex" comme ceci par exemple :

%%AMC:preprocess_command=/media/ouin-j/OS/__1AA_CLOUD/UBUNTU/LINUX/Annee_20_21/MAT2/Devoir_DS2_AMC/prePythonTex4AMC
%%AMC:jobspecific=1
%%AMC:latex_engine=pdflatex --shell-escape

Autre point :
Vérifier si vous êtes en Python2 ou 3. Cela change les lignes du fichier "prePythonTex4AMC".

Voici le contenu dans le cas de Python3 :

#! /bin/sh
SRC=$1
echo "***** JOBNAME=$AMC_JOBNAME" 
echo "***** CMD=$AMC_CMD" 
rm -rf ./pythontex-files-*
rm -f $AMC_JOBNAME.pytxcode
$AMC_CMD
echo "***** PYTHON" 
python3 /usr/share/texlive/texmf-dist/scripts/pythontex/pythontex3.py $AMC_JOBNAME.pytxcode
echo "***** END FILTER" 

Et la version en Python2 :

#! /bin/sh
SRC=$1
echo "***** JOBNAME=$AMC_JOBNAME" 
echo "***** CMD=$AMC_CMD" 
rm -rf ./pythontex-files-*
rm -f $AMC_JOBNAME.pytxcode
$AMC_CMD
echo "***** PYTHON" 
python /usr/share/texlive/texmf-dist/scripts/pythontex/pythontex.py $AMC_JOBNAME.pytxcode
echo "***** END FILTER" 

Belle journée à tous.
J/O

RE: Effectuer du calcul formel dans un QCM AMC - Added by Joachim Lebovits about 3 years ago

Bonjour à tous les deux,

Et merci pour vos réponses.
Si je résume, j'ai essayé toutes vos propositions et cela ne fonctionne toujours pas.
En attendant, au moins, j'ai mis les fichiers dans une arborescence dont le chemin ne contient pas d'espace, ce qui ne peut pas faire de mal...

Pour le reste:

@ Alexis et & Joss Ouin

J'ai essayé le chemin absolu mais c'est encore pire car AMC refuse alors catégoriquement de créer une version du sujet (même avec les points d'interrogation) alors même qu'il dit que le fichier a été copié.

- @ Joss OUIN

En ce qui concerne python, j'utilise effectivement la version 3 par défaut. J'ai donc modifié le fichier prePythonTex4AMC, comme vous l'avez indiqué, et je le nomme désormais prePythonTex4AMCbis.

En fait le problème est le suivant:

Pour la deuxième compilation (celle avec pythontex.py j'utilise le terminal car je n'arrive pas à copier de façon satisfaisante le moteur Pythontex ds TeXshop). A la troisième compilation tout fonctionne très bien.
Mais dès que je fais un copié coller de mon fichier TeX pour en faire le source d'un projet AMC alors c'est comme si je n'avais jamais compilé avec pythontex.

Je vous envoie le fichier log (qui est un peu gros car il contient les précédentes tentatives: je ne connais pas la commande pour effacer le log des fichiers précédents. J'ai essayé sudo port clean -- all auto-multiple-choice log et plusieurs combinaisons du même genre mais rien n'y a fait.

Par ailleurs en voulant placer le fichier debug à un endroit précis (avec la commande indiquée par Aexis, voici dce que me répond le terminal :

(base) jlebovits@iMac-de-info-3 ~ % auto-multiple-choice gui --debug-file/Users/jlebovits/Dropbox/5-Latex_et_tous_logiciels_de_math_et_terminal/1-Latex/1-Latex_doc_etc/2-Essais_LaTeX_en_pratique/Latex_et_Python/0-AEssais/log
WARNING **: Failed to load shared library 'libgdk_pixbuf-2.0.0.dylib' referenced by the typelib: dlopen(libgdk_pixbuf-2.0.0.dylib, 9): image not found at /opt/local/lib/perl5/vendor_perl/5.28/darwin-thread-multi-2level/Glib/Object/Introspection.pm line 110.
Unknown option: debug-file/users/jlebovits/dropbox/5-latex_et_tous_logiciels_de_math_et_terminal/1-latex/1-latex_doc_etc/2-essais_latex_en_pratique/latex_et_python/0-aessais/log

Apparemment il n'a pas aimé que je mette à jour macPort...
bon donc en attendant je n'ai que le fichier amc-compiled.log

Encore merci pour le temps que vous passez à m'aider.

amc-compiled.log (31.4 kB)

RE: Effectuer du calcul formel dans un QCM AMC - Added by Joss OUIN about 3 years ago

Bonjour,

Voici mes remarques sachant que je ne suis pas un expert de LaTeX :

Pour la deuxième compilation (celle avec pythontex.py j'utilise le terminal car je n'arrive pas à copier de façon satisfaisante le moteur Pythontex ds TeXshop). A la troisième compilation tout fonctionne très bien.

Il faudrait peut-être refaire une installation de PythonTex non ?

Mais dès que je fais un copié coller de mon fichier TeX pour en faire le source d'un projet AMC alors c'est comme si je n'avais jamais compilé avec pythontex.

Je pense que c'est normal car c'est justement les lignes de commandes du fichier "prePythonTex4AMC" qui se chargent de compiler avec PythonTex.
Cette ligne-là :

python3 /usr/share/texlive/texmf-dist/scripts/pythontex/pythontex3.py $AMC_JOBNAME.pytxcode

Au niveau de votre fichier log, cette ligne apparaît plusieurs fois :

Package PythonTeX Warning: Missing autoprint content on input line 186.

Une question bête : avez-vous bien déclaré le package pythontex dans votre fichier latex ?
Un exemple basique :

\documentclass[12pt]{article}
\usepackage{pythontex}

\begin{document}

\begin{pycode}
import numpy as np
\end{pycode}

\py{np.random.randint(10)}

\end{document}

Bonne journée.
J/O

« Previous 1 2 3 Next » (26-50/67)