Effectuer du calcul formel dans un QCM AMC

Added by Joss OUIN 3 months 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 (18)

RE: Effectuer du calcul formel dans un QCM AMC - Added by Nicolas Roux 3 months ago

Bonjour Joss, j'ai testé vos exemples et sans succès, j'ai toujours la même erreur, à savoir "missing autoprint content", même avec un exemple minimaliste comme suit:
\documentclass[12pt]{article}
\usepackage{pythontex}
\begin{document}
\begin{pycode}
2+2
\end{pycode}
\end{document}

Alors que ce qui suit compile sans erreur:

\documentclass[12pt]{article}
\usepackage{pythontex}
\begin{document}
\py{2+2}
\end{document}

Si vous avez une idée, je suis preneur!
Merci d'avance, bonne journée.
N.Roux

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

Bonjour Nicolas et bonjour à tous,

L'erreur vient du fait que Python ne sait pas "interpréter" : 2+2
Il faut écrire k = 2 + 2 (j'ai pris k comme exemple, le 2+2 doit être affecté à une variable).

Un bon moyen de savoir si un code "tourne" c'est de l'essayer avant dans un environnement Python. Pour Linux, je conseille Spyder.

Bon week-end.
Joss.

RE: Effectuer du calcul formel dans un QCM AMC - Added by Nicolas Roux 1 day ago

Bonjour, je suis en train de me battre avec mon installation de latex, AMC, pythontex sous ubuntu.
J'ai tenté de compiler le code suivant sous texmaker:

\documentclass[12pt]{article}
\usepackage{pythontex}
\begin{document}
\py{2+2}
\end{document}

J'obtiens de jolis ?? mais ce n'est pas tout à fait ce que j'attends...

Dans mon log, tout semble bien se passer à part une ligne:
Package PythonTeX Warning: Missing autoprint content on input line 4.

Donc la ligne correspondant à \py{2+2}.

Je joins le log si ça peut aider.
Si vous avez une idée, je suis preneur, je m'arrache le peu de cheveux qu'il me reste...
Merci d'avance
Nicolas

test.log (9.1 kB)

RE: Effectuer du calcul formel dans un QCM AMC - Added by Joss OUIN 1 day ago

Bonjour Nicolas et bonjour à tous,

Ne serait-ce pas une erreur due à la compilation "tex" en shell-escape ?
Il faut indiquer le chemin d'accès au fichier pythontex.py. Pour cela il faut saisir une commande utilisateur : pour ce faire aler dans le menu "Utilisateur/Commandes Utilisateur" puis sur "Editer commandes utiisateur"

Copier/coller alors :

pdflatex --shell-escape -synctex=1 -interaction=nonstopmode %.tex| python /usr/share/pythontex/pythontex.py %.tex| pdflatex --shell-escape -synctex=1 -interaction=nonstopmode %.tex|

Vous remarquez que sur ma machine (Linux) c'est : /usr/share/pythontex/pythontex.py Faites une recherche de ce fichier pour savoir où il se trouve.

Une simple compilation sans ces lignes ignorera les codes python, d'où les ?? dans votre fichier PDF de sortie.

J'espère que cela pourra vous aider.
Belle journée à tous.
Joss.

RE: Effectuer du calcul formel dans un QCM AMC - Added by Joss OUIN 1 day ago

Une dernière chose :

Dans les commentaires de cette vidéo : https://www.youtube.com/watch?v=wbAhNezeuEE
Je donne des fichiers sources ainsi que les instructions de compilation LaTeX.

Je les joins à ce post.
Essayez-les et réglez les paramètres de compilation.

Belle journée.
Joss.

Simpy_demovideo_4-1.tex - Fichier exemple au format ".tex" (4.8 kB)

Parametrage_Texmaker_et_AMC.txt - Instructions de compilation au format ".txt" (1.8 kB)

RE: Effectuer du calcul formel dans un QCM AMC - Added by Nicolas Roux 1 day ago

Merci pour les réponses, j'avais une erreur dans mes commandes utilisateurs pour mon 1er exemple.


pdflatex --shell-escape -synctex=1 -interaction=nonstopmode %.tex| python /usr/share/texlive/texmf-dist/scripts/pythontex/pythontex.py %.tex| pdflatex --shell-escape -synctex=1 -interaction=nonstopmode %.tex|

J'ai compilé votre exemple, sous texmaker, erreurs...
Dans le log, je repère ça:

Package etex Warning: Extended allocation already in use.

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

Merci beaucoup pour votre aide!

test.log (42.6 kB)

RE: Effectuer du calcul formel dans un QCM AMC - Added by Nicolas Roux 1 day ago

Bon, j'ai du mieux mais ce n'est toujours pas ça...

J'ai compilé le fichier source.tex avec le code suivant (code simple avec juste \py{2+2}), aucun soucis sous texmaker (ubuntu), alors que sous AMC, ça bloque... Je ne comprends pas, ils doivent (j'imagine) faire appel de la même manière à pdflatex, pythontex etc...

Je joins les 2 logs, dont celui de débogage d'AMC, ainsi que mon prePythonTex4AMC.

Merci encore...
Nico

Code du fichier tex:

%AMC:preprocess_command=prePythonTex4AMC
%AMC:jobspecific=1
%%AMC:latex_engine=pdflatex --shell-escape

% José OUIN : http://www.joseouin.fr

% Compilation Texmaker : Utilisateur/Commandes utilisateur
------------------------
Shell Python :
% pdflatex --shell-escape synctex=1 -interaction=nonstopmode .tex|
python /usr/share/texlive/texmf-dist/scripts/pythontex/pythontex.py .tex|
pdflatex --shell-escape -synctex=1 -interaction=nonstopmode .tex|
-----------------------

% Copier-coller la ligne ci-dessous dans Utilisateur/Commandes Utilisateur/Editer Commandes Utilisateur
----------------------
pdflatex --shell-escape synctex=1 -interaction=nonstopmode .tex | python /usr/share/texlive/texmf-dist/scripts/pythontex/pythontex.py %.tex | pdflatex --shell-escape -synctex=1 -interaction=nonstopmode %.tex
-------------------------

\documentclass[a4paper]{article}

\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}

\usepackage[francais,bloc,completemulti]{automultiplechoice}
\usepackage{fancyhdr,amssymb,amsmath}

% ---------- Utilisation de codes Python -----
\usepackage{pythontex}
%--------------------------------------------

\begin{document}
\py{2+2}
\end{document}

AMC-DEBUG-XYWkwjvH.log (34.3 kB)

source.log (27.6 kB)

prePythonTex4AMC (295 Bytes)

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

[   2050,   1.79] Calling preprocess command: ./prePythonTex4AMC DOC-filtered.tex
Calling preprocess command: ./prePythonTex4AMC DOC-filtered.tex
[   2050,   1.79] Preprocess command call failed: [-1] No such file or directory

Votre fichier prePythonTex4AMC est-il bien présent dans votre répertoire projet (sans extension) ? Est-il bien exécutable ?

RE: Effectuer du calcul formel dans un QCM AMC - Added by Nicolas Roux about 14 hours ago

Bonjour, le fichier est bien présent, sans extension et exécutable...
Le dossier est dans mon dossier personnel, donc j'imagine qu'il n'y a pas de problèmes de droits.
Je vous envoie le dossier complet en pièce jointe. On y trouve source.pdf comme il faut et DOC-sujet.pdf avec les ??

Merci encore!

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

Dans votre répertoire projet, ./prePythonTex4AMC DOC-filtered.tex renvoie

zsh: ./prePythonTex4AMC: bad interpreter: /bin/sh^M: aucun fichier ou dossier de ce type

Il me semble donc que votre fichier prePythonTex4AMC a des passages à la ligne du type windows et que cela gêne linux. Pouvez-vous essayer avec la version ci-jointe ?

prePythonTex4AMC (285 Bytes)

RE: Effectuer du calcul formel dans un QCM AMC - Added by Nicolas Roux about 11 hours ago

Merci!!!!!!
C'était juste ça....
Aucune idée du pourquoi, mais je garde celui-ci très précieusement!

Merci pour votre projet, votre investissement et vos réponses et désolé de vous faire perdre du temps avec des choses élémentaires...
Mais comme je dis à mes élèves, c'est en se trompant qu'on apprend!
Bonne journée.
Cordialement
N.Roux

RE: Effectuer du calcul formel dans un QCM AMC - Added by Gérard Carpeaux about 5 hours ago

Bonsoir,
je me permets de participer à ce fil car depuis l'apparition des premiers sujets sur python, je n'ai jamais réussi à obtenir un résultat.
J'espérais que le fichier proposé par Alexis aurait résolu mon problème mais non, j'ai toujours des ??.

j'ai téléchargé le fichier le fichier tex de Joss sur youtube.
J'ai tapé dans un terminal

whereis pythontex.py
pythontex: /usr/bin/pythontex /home/monsieur/texlive/2019/bin/x86_64-linux/pythontex /home/monsieur/texlive/2018/bin/x86_64-linux/pythontex

Les deux dernières réponses pointent vers la texlive 2019 et 2018 installées dans mon home.

J'ai testé toutes les possibilité pour le fichier prepython

#! /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
# python /usr/bin/pythontex.py $AMC_JOBNAME.pytxcode
 python /usr/share/texlive/texmf-dist/scripts/pythontex/pythontex.py $AMC_JOBNAME.pytxcode
# python /usr/share/texlive/texmf-dist/scripts/pythontex/pythontex.py $AMC_JOBNAME.pytxcode
echo "***** END FILTER"   

J'ai rajouté

\RequirePackage{etex}

Au quotidien, je n'utilise pas python mais fp, c'est juste que ce problème me titille.
Je suis sous ubuntu 18.04 et AMC 1.4.

Merci

AMC-DEBUG-OVDAw29p.log (21.5 kB)

DOC-sujet.pdf (69.1 kB)

source.tex (4.8 kB)

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

A priori je pense qu'on peut mettre tout simplement

pythontex $AMC_JOBNAME.pytxcode

au lieu de spécifier l'interpréteur python et le chemin complet.
Votre fichier prePythonTex4AMC est-il bien exécutable ?

RE: Effectuer du calcul formel dans un QCM AMC - Added by Gérard Carpeaux about 3 hours ago

Votre fichier prePythonTex4AMC est-il bien exécutable ?

Oui, avec un clic droit puis permission et case cochée pour rendre exécutable puis un test puis une seconde fois avec chmod u+x

pythontex $AMC_JOBNAME.pytxcode

J'ai toujours des ??
J'ai testé en remplaçant tous les AMC_JOBNAME par amc-compiled
Toujours des ??

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

Pouvez-vous joindre votre répertoire projet ?

RE: Effectuer du calcul formel dans un QCM AMC - Added by Gérard Carpeaux about 3 hours ago

C'est la version avec la modification AMC_JOBNAME par amc-compiled.

Comme indiqué précédemment, ce n'est pas un gros souci pour moi donc si vous ne trouvez pas la solution ce ne sera pas grave.

python2.zip (9.4 kB)

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

Dans votre fichier prePythonTex4AMC :
  • $AMC_JOBNAME est une variable qui est définie par AMC. Il vaut mieux la laisser (ou alors remplacer $AMC_JOBNAME par amc-compiled, mais alors il n'y a plus le $).
  • Vous avez mis un y en trop à la fin de pythontex.
#! /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" 
pythontex $AMC_JOBNAME.pytxcode
echo "***** END FILTER" 

(1-18/18)