Re: Help sur Python

Page principale

Répondre à ce message
Auteur: Patrice Karatchentzeff
Date:  
À: Yth
CC: guilde
Sujet: Re: Help sur Python
Le mar. 14 févr. 2023 à 18:29, Yth <yth@???> a écrit :
>

[...]

> emacs est un très bon IDE Python.


Emacs est un très bon éditeur : c'est même le meilleur (purée, 2
trolls dans la journée, et on n'est même pas vendredi...)

> Mon conseil est d'utiliser editorconfig, et en particulier pour les fichiers python, de supprimer les espaces en fin de ligne.
> Tu n'en as jamais besoin, et une ligne vide mais avec des espaces compte comme une ligne indentée, donc peut péter ton code sur une mauvaise indentation.


Quand on lit cela, on se dit que c'est hallucinant qu'un programme
puisse planter pour une ligne... vide. On est au XXIe siècle quand
même...

Mais merci du conseil : ça doit sans doute être un truc comme cela. Je
vais mettre en surbrillance les indentations dans Emacs, comme cela je
serais tranquille.

[...]

> Après, ton problème de message d'erreur pas clair ne vient pas de python, mais de la façon dont ton code est utilisé : le fichier est lu par ailleurs et le contenu envoyé à un eval python ou un truc du genre.
> Et là, la stacktrace est imbitable puisqu'elle te parle du bidule qui charge ton code et de là où ça plante dans ce bidule, et pas du tout dans ton code.
> Si tu avais moyen de traiter, pour tests, directement ton fichier python via l'interpréteur python, tu aurais une erreur bien plus claire t'indiquant précisément où ça ne va pas.


Les sorties sont un poil plus claires pour des erreurs non syntaxiques
: faut juste que je recalcule à la main le bon numéro de ligne. Mais
c'est le problème d'être inséré dans un autre code : ce n'est pas
spécifique à pyhton pour le coup.

> Peut-être simplement faire un « import tonfichier », pour détecter les erreurs de syntaxe.
> Si ton code fait des imports inaccessibles hors scribus, ça plantera sur ces imports, mais après validation syntaxique.


Faut juste que je commente la première ligne, mais sinon c'est une bonne idée.

import sys

try:
    import scribus
except ImportError:
    print("This Python script is written for the Scribus scripting interface.")
    print("It can only be run from within Scribus.")
    sys.exit(1)


Sinon, j'ai testé pylint, mais c'est bavard sur du superficiel, et
très peu disert sur l'essentiel. Donc je n'ai pas été ébloui :)

Merci du conseil en tout cas,

PK

-- 
      |\      _,,,---,,_           Patrice KARATCHENTZEFF
ZZZzz /,`.-'`'    -.  ;-;;,_   mailto:patrice.karatchentzeff@gmail.com
     |,4-  ) )-,_. ,\ (  `'-'
    '---''(_/--'  `-'\_)