Pythontex et sympy

Tout ce qui concerne le langage TeX/LaTeX et ses variantes. Ce langage est utilisable sur le forum via les balises tex.
[participation réservée aux membres inscrits]
Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
plcorbin
Utilisateur confirmé
Utilisateur confirmé
Messages : 17
Inscription : samedi 18 décembre 2021, 18:50
Statut actuel : Enseignant

[Résolu] Pythontex et sympy

Message non lu par plcorbin »

Bonsoir,
J'utilise pythontex depuis peu. Je suis sous linux (ubuntu 20) avec texlive (full) 2019, python3 et comme editeur gedit.
J'ai installé les modules python3-pygments, python3-scipy, python3-matplotlib et python3-sympy.

J'arrive à compiler en général les fichiers tex utilisant le package pythontex avec la commande.

Code : Tout sélectionner

pdflatex  -shell-escape -src  -interaction=nonstopmode nomfichier | python3 /usr/share/texlive/texmf-dist/scripts/pythontex/pythontex3.py nomfichier  | pdflatex   -shell-escape -src  -interaction=nonstopmode nomfichier

Mais en revanche je n'arrive pas à compiler les fichiers tex nécessitant le module sympy. Je précise que le module sympy fonctionne bien chez moi car les programmes python nécessitant sympy tournent bien.

Quand j'exécute le fichier tex suivant.

Code : Tout sélectionner

\documentclass{article}
\usepackage[french]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath,amsthm,amssymb,mathrsfs}
\usepackage{color} 
\usepackage{pythontex}  

\begin{document}

\begin{pycode}
import sympy
x=symbols('x')  
exp=(2*x-1)*(4-3*x)
\end{pycode}

\py{expand(exp)}
\end{document}
J'obtiens le message suivant comportant des erreurs que je n'arrive pas à comprendre.

Code : Tout sélectionner

Running tool: Pythontex

This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Debian) (preloaded format=pdflatex)
 \write18 enabled.
 Source specials enabled.
entering extended mode
(./try.tex
LaTeX2e <2020-02-02> patch level 2
L3 programming layer <2020-02-14>
(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls
Document Class: article 2019/12/20 v1.4l Standard LaTeX document class
(/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo))
(/usr/share/texlive/texmf-dist/tex/generic/babel/babel.sty
(/usr/share/texlive/texmf-dist/tex/generic/babel/switch.def)
(/usr/share/texlive/texmf-dist/tex/generic/babel-french/french.ldf
(/usr/share/texlive/texmf-dist/tex/generic/babel/babel.def
(/usr/share/texlive/texmf-dist/tex/generic/babel/txtbabel.def))))
(/usr/share/texlive/texmf-dist/tex/latex/carlisle/scalefnt.sty)
(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty)
(/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty)
(/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty)
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty
For additional information on amsmath, use the `?' option.
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty))
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty)
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty))
(/usr/share/texlive/texmf-dist/tex/latex/amscls/amsthm.sty)
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty))
(/usr/share/texlive/texmf-dist/tex/latex/jknapltx/mathrsfs.sty)
(/usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty
(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg)
(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def))
(/usr/share/texlive/texmf-dist/tex/latex/pythontex/pythontex.sty
(/usr/share/texlive/texmf-dist/tex/latex/fvextra/fvextra.sty
(/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty)
(/usr/share/texlive/texmf-dist/tex/latex/etoolbox/etoolbox.sty)
(/usr/share/texlive/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty)
(/usr/share/texlive/texmf-dist/tex/latex/upquote/upquote.sty
(/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty))
(/usr/share/texlive/texmf-dist/tex/latex/lineno/lineno.sty))
(/usr/share/texlive/texmf-dist/tex/generic/xstring/xstring.sty
(/usr/share/texlive/texmf-dist/tex/generic/xstring/xstring.tex))
(/usr/share/texlive/texmf-dist/tex/latex/pgfopts/pgfopts.sty
(/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty
(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex
(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.code.t
ex)))) (/usr/share/texlive/texmf-dist/tex/latex/newfloat/newfloat.sty)
(/usr/share/texlive/texmf-dist/tex/latex/currfile/currfile.sty
(/usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty
(/usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty)
(/usr/share/texlive/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty))
(/usr/share/texlive/texmf-dist/tex/latex/filehook/filehook.sty)))
(/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def)
(./try.aux) (/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).]
) (./pythontex-files-try/try.pytxmcr) (./pythontex-files-try/try.pytxpyg)

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

[1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] (./try.aux) ){/usr/share
/texmf/fonts/enc/dvips/cm-super/cm-super-t1.enc}</usr/share/texmf/fonts/type1/p
ublic/cm-super/sfbx1000.pfb></usr/share/texmf/fonts/type1/public/cm-super/sfrm1
000.pfb>
Output written on try.pdf (1 page, 13930 bytes).
Transcript written on try.log.
Traceback (most recent call last):
  File "/usr/share/texlive/texmf-dist/scripts/pythontex/pythontex3.py", line 2865, in <module>
    main(python=sys.version_info.major)
  File "/usr/share/texlive/texmf-dist/scripts/pythontex/pythontex3.py", line 2811, in main
    do_multiprocessing(data, temp_data, old_data, engine_dict)
  File "/usr/share/texlive/texmf-dist/scripts/pythontex/pythontex3.py", line 1480, in do_multiprocessing
    sys.stdout.flush()
BrokenPipeError: [Errno 32] Broken pipe
Exception ignored in: <encodings.utf_8.StreamWriter object at 0x7fd6ac00b310>
BrokenPipeError: [Errno 32] Broken pipe

Done.
Auriez-vous une piste à me proposer pour résoudre ce problème s'il vous plaît?
Merci de votre aide.

Bien à vous,
Patrice.
Dernière modification par plcorbin le vendredi 24 décembre 2021, 00:55, modifié 2 fois.
touhami
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 471
Inscription : dimanche 11 février 2007, 11:45

Re: Pythontex et sympy

Message non lu par touhami »

Bon jour.
L'extension pythontex a des environnements et des commandes qui commencent par charger automatiquement les modules python sympy (ou pylab). La syntaxe consiste à utiliser sympy... (ou pylab...) au lieu de py...

ECM.

Code : Tout sélectionner

\documentclass[11pt]{article}
\usepackage{pythontex}
\begin{document}
\begin{sympycode}
x=symbols('x')  
exp=(2*x-1)*(4-3*x)
\end{sympycode}
	
$\sympy{expand(exp)}$
\end{document}
plcorbin
Utilisateur confirmé
Utilisateur confirmé
Messages : 17
Inscription : samedi 18 décembre 2021, 18:50
Statut actuel : Enseignant

Re: Pythontex et sympy

Message non lu par plcorbin »

Bonsoir,

Merci beaucoup pour votre code qui fonctionne bien et les informations sur le chargement automatique des packages sympy et pylab.

Une petite remarque étrange: si je remplace :

Code : Tout sélectionner

import sympy
par:

Code : Tout sélectionner

from sympy import *
dans mon code:

Code : Tout sélectionner

\documentclass{article}
\usepackage[french]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath,amsthm,amssymb,mathrsfs}
\usepackage{color} 
\usepackage{pythontex}  

\begin{document}

\begin{pycode}
import sympy
x=symbols('x')  
exp=(2*x-1)*(4-3*x)
\end{pycode}

\py{expand(exp)}
\end{document}
Alors le code fonctionne. Je ne sais pas si vous avez une explication car ce phénomène me dépasse complètement...

Merci encore.

Bien à vous,
Patrice.
Dernière modification par MB le mardi 21 décembre 2021, 21:21, modifié 1 fois.
Raison : Mise en forme du message.
touhami
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 471
Inscription : dimanche 11 février 2007, 11:45

Re: Pythontex et sympy

Message non lu par touhami »

Bon jour.
À la différence de from sympy import * avec [cc]import sympy[/c] vous avez besoin de préfixer les commandes python par sympy : sympy.symbols et sympy.expand sinon elles ne sont pas reconnues.
plcorbin
Utilisateur confirmé
Utilisateur confirmé
Messages : 17
Inscription : samedi 18 décembre 2021, 18:50
Statut actuel : Enseignant

[Résolu] Re: Pythontex et sympy

Message non lu par plcorbin »

Merci beaucoup pour cette précision cruciale !!!

Bien à vous,
Patrice.
projetmbc
Utilisateur chevronné
Utilisateur chevronné
Messages : 1991
Inscription : samedi 29 décembre 2007, 00:58

Re: Pythontex et sympy

Message non lu par projetmbc »

Bonjour.

Je rajouterais qu'il vaut mieux cibler les importations faites.

Ici un from sympy import symbols est bien mieux qu'un from sympy import *.

Garder le from sympy import * juste pour la conception du script.
plcorbin
Utilisateur confirmé
Utilisateur confirmé
Messages : 17
Inscription : samedi 18 décembre 2021, 18:50
Statut actuel : Enseignant

Re: Pythontex et sympy

Message non lu par plcorbin »

Bonjour,

Merci pour cette précision.

Bien à vous,
Patrice.