Python et latex

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.
zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 482
Inscription : jeudi 14 octobre 2010, 09:20
Statut actuel : Enseignant
Localisation : Clermont-Ferrand

[Résolu] Python et latex

Message non lu par zariski63 »

Bonjour !
J'ai un problème en suspend sur le forum dédié à latex pour lequel je n'ai pas de réponses.

Après avoir installé Python à la racine "C:\python310" par exemple, latex ne trouve pas la commande "python" adéquate alors que mon path est renseigné correctement. Voici le message d'alerte :

Code : Tout sélectionner

listing1.py : Forbidden to open for writing
Mais, si python est installé dans le dossier utilisateur, la commande est trouvée sans problème.
Quelqu'un pourrait-il me dire pourquoi svp ? Et si il existe une correction possible ?

Voici le programme dont l'essentiel m'a été fourni par UBP.

Code : Tout sélectionner

\documentclass{article}
\usepackage{fontspec}
\usepackage{libertine}
\usepackage{fancyvrb}
\usepackage{shellesc}

\makeatletter
\newenvironment{pycoderic}[1]{%
	\def\runcommand{%
		\immediate\write18{python #1.py > #1.plog}\relax
        \textbf{ENTRÉE}\par	
        \VerbatimInput{#1.py}
	    \textbf{SORTIE}\par
        \input{#1.plog}%
       }%
    \VerbatimOut{#1.py}%
    }{%
	  \endVerbatimOut
	  \runcommand
     }
\makeatother

\begin{document}

\begin{pycoderic}{listing1}
print('Coucou')
\end{pycoderic}

\end{document}
Merci pour toutes réponses me permettant d'avancer.
MB
Administrateur
Administrateur
Messages : 7649
Inscription : samedi 28 mai 2005, 14:23
Statut actuel : Enseignant

Re: Python et latex

Message non lu par MB »

Bonsoir, ce sujet n'a à priori pas de rapport direct avec Python, on va donc retourner dans la section latex.
Le message d'erreur semble indiquer un problème de droits d'écriture à propos du fichier listings.py. Je suppose qu'il faut modifier les droits du dossier dans lequel ce fichier doit se trouver.
MB. (rejoignez pCloud et bénéficiez de 10Go de stockage en ligne gratuits)
Pas d'aide en message privé. Merci de consulter ce sujet avant de poster votre premier message.
zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 482
Inscription : jeudi 14 octobre 2010, 09:20
Statut actuel : Enseignant
Localisation : Clermont-Ferrand

Re: Python et latex

Message non lu par zariski63 »

Le fichier se trouve sur un deuxième disque pour lequel j'ai tous les droits ...

Je pense que c'est pire que ça. A priori pour pouvoir pratiquer ce genre de chose avec Latex il serait nécessaire que python soit installé dans le dossier utilisateur (une sécurité de Windows...). Une hypothèse parmi d'autres.
zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 482
Inscription : jeudi 14 octobre 2010, 09:20
Statut actuel : Enseignant
Localisation : Clermont-Ferrand

Re: Python et latex

Message non lu par zariski63 »

Bon je crois avoir trouvé le problème ...
Comme dirait quelqu'un, c'est surtout entre la chaise et le clavier que ça se passe.
En fait il faut remplacer le ".py" en ".tex" !! Oui je sais je suis une buse. :lol:
MB
Administrateur
Administrateur
Messages : 7649
Inscription : samedi 28 mai 2005, 14:23
Statut actuel : Enseignant

Re: Python et latex

Message non lu par MB »

Lequel du coup de .py ?
Tu peux donc préciser la correction à apporter et marquer le sujet comme résolu en modifiant l'icône de ton premier message.
MB. (rejoignez pCloud et bénéficiez de 10Go de stockage en ligne gratuits)
Pas d'aide en message privé. Merci de consulter ce sujet avant de poster votre premier message.
zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 482
Inscription : jeudi 14 octobre 2010, 09:20
Statut actuel : Enseignant
Localisation : Clermont-Ferrand

Re: Python et latex

Message non lu par zariski63 »

Les deux.
zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 482
Inscription : jeudi 14 octobre 2010, 09:20
Statut actuel : Enseignant
Localisation : Clermont-Ferrand

Re: Python et latex

Message non lu par zariski63 »

En fait 3 !
Excusez-moi.
Je remercie vivement ceux qui font l'effort de m'aider. :)

Code : Tout sélectionner

\documentclass{article}
\usepackage{fontspec}
\usepackage{libertine}
\usepackage{fancyvrb}
\usepackage{shellesc}

\makeatletter
\newenvironment{pycoderic}[1]{%
	\def\runcommand{%
		\immediate\write18{python #1.tex > #1.plog}\relax
        \textbf{ENTRÉE}\par	
        \VerbatimInput{#1.tex}
	    \textbf{SORTIE}\par
        \input{#1.plog}%
       }%
    \VerbatimOut{#1.tex}%
    }{%
	  \endVerbatimOut
	  \runcommand
     }
\makeatother

\begin{document}

\begin{pycoderic}{listing1}
print('Coucou')
\end{pycoderic}

\end{document}
MB
Administrateur
Administrateur
Messages : 7649
Inscription : samedi 28 mai 2005, 14:23
Statut actuel : Enseignant

Re: Python et latex

Message non lu par MB »

Très bien, j'ai donc marqué le sujet comme résolu.
MB. (rejoignez pCloud et bénéficiez de 10Go de stockage en ligne gratuits)
Pas d'aide en message privé. Merci de consulter ce sujet avant de poster votre premier message.
touhami
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 471
Inscription : dimanche 11 février 2007, 11:45

Re: Python et latex

Message non lu par touhami »

Bonjour.
Le problème se pose pour des raisons de sécurité. En fait, sous Windows TeX ne peut pas écrire (ouvrier pour écriture) des fichiers exécutables.
Pour se convaincre, il suffit de compiler l'ECM suivant.

Code : Tout sélectionner

\documentclass{article}
\usepackage{fancyvrb}

\begin{document}
\begin{VerbatimOut}{fichier.exe}
Hello World
\end{VerbatimOut}
\end{document}
Dans votre cas les fichiers .py sont reconnus comme étant exécutables!
Il y a deux solutions :
  1. modifier la variable d'environnement : pathext en supprimant l'extension .py
  2. utiliser une autre extension (comme vous avez déjà remarqué) et de préférence autre que .tex, par exemple .pyt ou .texp...
MB
Administrateur
Administrateur
Messages : 7649
Inscription : samedi 28 mai 2005, 14:23
Statut actuel : Enseignant

Re: Python et latex

Message non lu par MB »

Merci pour ces précisions !
MB. (rejoignez pCloud et bénéficiez de 10Go de stockage en ligne gratuits)
Pas d'aide en message privé. Merci de consulter ce sujet avant de poster votre premier message.
zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 482
Inscription : jeudi 14 octobre 2010, 09:20
Statut actuel : Enseignant
Localisation : Clermont-Ferrand

Re: Python et latex

Message non lu par zariski63 »

Génial ! Maintenant j'ai vraiment le pourquoi du comment. Merci beaucoup !!!!
zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 482
Inscription : jeudi 14 octobre 2010, 09:20
Statut actuel : Enseignant
Localisation : Clermont-Ferrand

Re: Python et latex

Message non lu par zariski63 »

Je suis désolé de revenir mais comme un problème en chasse un autre...
Le code suivant ne passe pas ; un problème d'encodage à priori.
Je ne sais comment modifier ce code afin de pouvoir utiliser des caractères (si présents dans la fonte) au delà de "007F".

Code : Tout sélectionner

\documentclass{article}
\usepackage{fontspec,libertine,fancyvrb,shellesc}

\newenvironment{pycode}[1]{%
	\def\runcommand{%
		\immediate\write18{python.exe #1.pyt > #1.plog}\relax%
		\textbf{ENTRÉE}\par
		\VerbatimInput{#1.pyt}\bigbreak
		\textbf{SORTIE}\par
		\input{#1.plog}%
	}%
	\VerbatimOut{#1.pyt}%
	}{%
	\endVerbatimOut
	\runcommand}


\begin{document}

\begin{pycode}{listing1}
print('éèàçù',"\n")

print('\u2660')
\end{pycode}

\end{document}
Voici un extrait du log :
log.png