Nouvelle interface en qt

Les propositions de correctifs ou d'exercices pour Pyromaths.

Modérateur : Développeurs

Avatar de l’utilisateur
Jérôme
Administrateur - Site Admin
Messages : 1130
Inscription : 26 août 2006, 13:10
Localisation : Nantes
Contact :

Re: Nouvelle interface en qt

Message par Jérôme » 02 févr. 2009, 21:11

Le plus simple est peut-être de passer à la version 2.6.1
Pyromaths génère des fiches d'exercices et leur corrigé en toute simplicité.
Un programme multi-plateformes libre et gratuit sous licence GPL

Avatar de l’utilisateur
Yves
Messages : 472
Inscription : 21 janv. 2009, 20:40
Contact :

Re: Nouvelle interface en qt

Message par Yves » 02 févr. 2009, 22:40

Jérôme a écrit :Le plus simple est peut-être de passer à la version 2.6.1
OK. C'est également la version que tu utilises ?

Avatar de l’utilisateur
Jérôme
Administrateur - Site Admin
Messages : 1130
Inscription : 26 août 2006, 13:10
Localisation : Nantes
Contact :

Re: Nouvelle interface en qt

Message par Jérôme » 02 févr. 2009, 22:42

Non, j'utilise Python 2.5.2. Mais elle est patchée sous ubuntu. Mais c'est la version que j'ai utilisée pour les tests Windows.
Pyromaths génère des fiches d'exercices et leur corrigé en toute simplicité.
Un programme multi-plateformes libre et gratuit sous licence GPL

Avatar de l’utilisateur
Yves
Messages : 472
Inscription : 21 janv. 2009, 20:40
Contact :

Re: Nouvelle interface en qt

Message par Yves » 03 févr. 2009, 18:18

J'ai installé Python 2.6.1 mais j'ai toujours le même problème :

Code : Tout sélectionner

MacBook-2:pyromaths administrateur$ python pyromaths.py 
This is pdfTeXk, Version 3.1415926-1.40.9 (Web2C 7.5.7)
 %&-line parsing enabled.
entering extended mode
Traceback (most recent call last):
  File "/Users/administrateur/pyromaths/interface.py", line 525, in enregistrer_sous
    creation(parametres)
  File "/Users/administrateur/pyromaths/pyromaths.py", line 152, in creation
    call(["latex", "-interaction=batchmode", str(f0)], env={"PATH": os.path.expandvars('$PATH')})
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/subprocess.py", line 444, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/subprocess.py", line 1137, in wait
    pid, sts = os.waitpid(self.pid, 0)
OSError: [Errno 4] Interrupted system call
Une idée ?

Avatar de l’utilisateur
Arnaud
Critique officiel de pyromaths
Messages : 609
Inscription : 26 août 2006, 21:49
Localisation : Allemagne
Contact :

Re: Nouvelle interface en qt

Message par Arnaud » 06 févr. 2009, 23:12

Pas vraiment en rapport avec la discussion, mais je suis aussi en train de plancher sur les chemins.
Je n'ai pas trouvé de moyen simple de récupérer le chemin d'exécution du script ( je ne parle pas du répertoire de travail ).

Donc j'ai fait un bricolage :

Code : Tout sélectionner

sys.argv[0][:len(sys.argv[0])-12]
sachant que pyromaths.py contient 12 caractères....

Je suis preneur si il y a mieux.

nico_
Messages : 43
Inscription : 23 sept. 2007, 18:33

Re: Nouvelle interface en qt

Message par nico_ » 16 févr. 2009, 17:39

Bonjour,
le problème, c'est que sys.argv[0] ne contient pas toujours le chemin complet du script.
Personnellement, j'utilise cette commande :

Code : Tout sélectionner

rep = os.path.split(__file__)[0]
que je place dans le script principal.

Avatar de l’utilisateur
Arnaud
Critique officiel de pyromaths
Messages : 609
Inscription : 26 août 2006, 21:49
Localisation : Allemagne
Contact :

Re: Nouvelle interface en qt

Message par Arnaud » 16 févr. 2009, 17:49

Ok, merci, je vais corriger ;)
nico_ a écrit :le problème, c'est que sys.argv[0] ne contient pas toujours le chemin complet du script.
Ha ? Tu sais pourquoi il y aurait un comportement aléatoire ?

nico_
Messages : 43
Inscription : 23 sept. 2007, 18:33

Re: Nouvelle interface en qt

Message par nico_ » 16 févr. 2009, 17:58

Non, ce n'est pas aléatoire (heureusement), mais ça dépend de la plateforme et de la manière dont tu lances le script (ie. en donnant le chemin complet ou non comme argument à python).

nico_
Messages : 43
Inscription : 23 sept. 2007, 18:33

Re: Nouvelle interface en qt

Message par nico_ » 16 févr. 2009, 18:02

Tiens, je vois que le dépôt svn a changé d'adresse... je n'arrive pas à changer l'adresse du dépôt dans Eclipse, je crois qu'il va falloir que je crée un nouveau projet :|

Sinon, concernant l'interface, elle me plaît assez, à un bémol près, c'est qu'il n'est pas possible de choisir l'ordre des exercices.
C'est pour ça que j'aimais bien l'idée des listes, pour qu'on puisse faire monter ou descendre un élément dans la liste.
J'avais commencé à faire quelque chose, mais j'avoue ne pas avoir pris le temps de continuer. :oops: :roll:

Avatar de l’utilisateur
Arnaud
Critique officiel de pyromaths
Messages : 609
Inscription : 26 août 2006, 21:49
Localisation : Allemagne
Contact :

Re: Nouvelle interface en qt

Message par Arnaud » 16 févr. 2009, 18:09

Jérôme a fait une fonction drag&drop pour modifier l'ordre des exercices, il faut juste la "connecter" au reste.
Mais d'après ce que j'ai pu voir, ça a l'air de fonctionner.

Avatar de l’utilisateur
Arnaud
Critique officiel de pyromaths
Messages : 609
Inscription : 26 août 2006, 21:49
Localisation : Allemagne
Contact :

Re: Nouvelle interface en qt

Message par Arnaud » 16 févr. 2009, 18:28

De mon côté, j'ai effectué la liaison entre interface graphique et fichier de conf, mais les options ne sont pas encore opérationnelles, c'est-à-dire pas utilisées pour la compilation.

Je cherche une doc sur la fonction "call" que Jérôme utilise, que je ne trouve dans aucun bouquin que j'ai.
J'imagine que cette fonction permet de lancer un programme avec des arguments, mais j'aimerais en savoir plus.

Avatar de l’utilisateur
Yves
Messages : 472
Inscription : 21 janv. 2009, 20:40
Contact :

Re: Nouvelle interface en qt

Message par Yves » 01 mai 2009, 09:28

Jérôme a écrit :Ha, ha ! J'ai trouvé une info : http://www.mail-archive.com/pyqt@riverb ... 10786.html
C'est un bug connu et un patch existe.
Tu avais vu juste Jérôme. C'est bien ce bug qui est toujours présent dans les versions 2.5.4 et 2.6.2 de Python pour Mac OS X et aussi freeBSD : http://www.freebsd.org/cgi/query-pr.cgi?pr=132093

J'ai appliqué le patch, qui utilise la syntaxe diff, au fichier suivant :

Code : Tout sélectionner

/opt/local/lib/python2.5/subprocess.py
Il faut remplacer

Code : Tout sélectionner

            return self.returncode


        def wait(self):
            """Wait for child process to terminate.  Returns returncode
            attribute."""
            if self.returncode is None:
                pid, sts = os.waitpid(self.pid, 0)
                self._handle_exitstatus(sts)
            return self.returncode
par

Code : Tout sélectionner

            return self.returncode


        def _waitpid_no_intr(self, pid, options):
            """Like os.waitpid, but retries on EINTR"""
            while True:
               try:
                   return os.waitpid(pid, options)
               except OSError, e:
                   if e.errno == errno.EINTR:
                       continue
                   else:
                       raise


        def wait(self):
            """Wait for child process to terminate.  Returns returncode
            attribute."""
            if self.returncode is None:
                pid, sts = self._waitpid_no_intr(self.pid, 0)
                self._handle_exitstatus(sts)
            return self.returncode
Une fois le patch appliqué, Pyromaths revision 41 fonctionne bien sur Mac OS X 10.5, lorsqu'il est appelé depuis le Terminal :-D

Répondre