Packaging

Les propositions de correctifs ou d'exercices pour Pyromaths.

Modérateur: Développeurs

Re: Packaging

Messagede Yves » Jeu 22 Mai 2014, 21:25

OK pour la suppression de l'option Tous les exercices.

Pour l'erreur "Unknown class '_FITagEditorView'", c'est un bug de localisation en français sur OS X 10.9. Pas grand chose à faire, à part attendre une mise à jour qui corrige le bug.

Plus que 2 erreurs sur OS X :)

Jérôme a écrit:L'exécutable que je crée ne fonctionne pas comme attendu. En effet, il n'affiche qu'un seul onglet, celui des options.

J'ai rencontré le même problème sur Mac. C'est un problème de dépendances non trouvées, depuis que les packages d'exercices sont déplacés dans pyromaths/ex/. J'ai contourné le problème avec un hack dans setup.py. Regarde le sujet API Exercice.
Avatar de l’utilisateur
Yves
 
Messages: 453
Inscription: Mer 21 Jan 2009, 21:40

Re: Packaging

Messagede Jérôme » Jeu 22 Mai 2014, 22:04

Yves a écrit:
Jérôme a écrit:L'exécutable que je crée ne fonctionne pas comme attendu. En effet, il n'affiche qu'un seul onglet, celui des options.

J'ai rencontré le même problème sur Mac. C'est un problème de dépendances non trouvées, depuis que les packages d'exercices sont déplacés dans pyromaths/ex/. J'ai contourné le problème avec un hack dans setup.py. Regarde le sujet API Exercice.

J'étais effectivement arrivé à la même conclusion mais n'avais pas encore trouvé de solution.
Merci Yves.
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
Jérôme
Administrateur - Site Admin
 
Messages: 1060
Inscription: Sam 26 Aoû 2006, 13:10
Localisation: Nantes

Re: Packaging

Messagede Yves » Ven 23 Mai 2014, 20:26

Les erreurs unsupported hash type sont liées à la version obsolète de OpenSSL disponible sur sur OS X 10.9.
Python 2.7 fonctionne avec OpenSSL 1.0 alors que sur OS X 10.9 c'est la version OpenSSL 0.9.8y qui est fournie.
Un retour à Python 2.6 apporterait une solution simple mais le modèle Counter utilisé par classes/fractions.py nécessite Python 2.7.
Il faudrait donc installer OpenSSL 1.0 et réinstaller Python 2.7 à partir des sources en utilisant OpenSSL 1.0 ou bien utiliser Homebrew, un package manager pour OS X:
brew install python --with-brewed-openssl
Une dernière alternative serait de ne pas tenir compte de ces erreurs pour l'instant, invisibles pour l'utilisateur final, et attendre OS X 10.10, qui devrait être annoncé le 2 juin prochain lors de la WWDC, en espérant que OpenSSL sera mis à jour.

Il reste l'erreur avec le nom de fichier qui est gênante car le nom de fichier proposé par défaut pour les exercices est Untitled mais Untitled est également proposé pour le corrigé. Si l'utilisateur valide deux fois en cliquant sur Enregistrer en laissant les noms de fichiers proposés, le fichier avec les exercices sera écrasé par le corrigé qui porte le même nom.
Avatar de l’utilisateur
Yves
 
Messages: 453
Inscription: Mer 21 Jan 2009, 21:40

Re: Packaging

Messagede Jérôme » Ven 23 Mai 2014, 23:49

Bonjour,
jbreizh a écrit:hello,
juste pour signaler que sur la doc de py2exe, il y a une fonction bien pratique pour gérer data_files sur cette pagehttp://www.py2exe.org/index.cgi/data_files.
C'est quand même moins dégueulasse ;)


Un grand merci pour le partage de cette information qui m'a bien aidé ce soir. Je me suis permis de l'inclure dans le Setup.py. Il est à présent fonctionnel pour Windows. Ouf. (I Ce fut long.

Il reste le problème des noms de fichiers que je n'ai pas encore regardé sous macOS X. Cela dit, n'ayant pas la plate-forme, ça risque d'être difficile.

Yves, pour l'inclusion des exercices, il m'a "suffit" d'ajouter la ligne packages = ['pyromaths.ex'] dans Setup.py. Ainsi, il parcourt le dossier et intègre l'ensemble. Par contre, j'ai du modifier la fonction __import__ de pyromaths.ex.__init__.py afin que les chemins du binaire Windows soient convenables. Ce n'est pas très joli mais ça fonctionne.

Setup.py
options = dict(py2exe=dict(compressed = True,
optimize = 2,
bundle_files = 3,
packages = ['pyromaths.ex', ],
includes = ['sip', 'gzip', ],
),


__init__.py
def __import(name=__name__, parent=None):
''' Import 'name' from 'parent' package. '''
if not isinstance(name, basestring):
name = name.__name__
# parent is None: assume 'name' is a package name
# hack tout moche pour l'import des exercices dans la version Windows de Pyromaths :
# Les modules sixiemes, quatriemes doivent être appelés avec le chemin complet,
# alors que les exercices cinquiemes.aires ne doivent être appelés qu'ainsi.
if "." not in name and hasattr(sys, "frozen"): name = "pyromaths.ex." + name
if parent is None: parent = name
elif not isinstance(parent, basestring):
# assume 'parent' is a package instance
parent = parent.__name__
return __import__(name, fromlist=parent)


Dernier point, je ne suis pas convaincu par le choix de "lieu de stockage" des vignettes. Pourquoi ne sont-elles pas dans data ? Pour la version Windows, j'ai du faire en sorte de les placer dans ce dossier (grâce à l’astuce de jbreizh).

Setup.py

data_files=[
('data/images', ['data/images/pyromaths.ico',
'data/images/pyromaths.png', 'data/images/pyromaths-banniere.png',
'data/images/whatsthis.png']
),
(r'data/templates', glob(r'data/templates/*.tex')),
(r'data/packages', glob(r'data/packages/*')),
(r'data/packages', glob(r'data/packages/*')),
] + find_data_files('src/pyromaths/ex','data/ex/',['*/img/ex-*.png']),
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
Jérôme
Administrateur - Site Admin
 
Messages: 1060
Inscription: Sam 26 Aoû 2006, 13:10
Localisation: Nantes

Re: Packaging

Messagede Jérôme » Sam 24 Mai 2014, 10:29

Yves a écrit:Je pense que le soucis vient de lxml qui était en version 2 et est maintenant en version 3. Et bien sûr, impossible de réinstaller la version 2 de lxml sur OS X 10.9, il y a des erreurs de compilation.

C'est étonnant, car sous Windows, j'ai utilisé lxml 3.3.5 et ça n'a pas posé de problème.
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
Jérôme
Administrateur - Site Admin
 
Messages: 1060
Inscription: Sam 26 Aoû 2006, 13:10
Localisation: Nantes

Re: Packaging

Messagede Yves » Sam 24 Mai 2014, 10:30

Jérôme a écrit:Yves, pour l'inclusion des exercices, il m'a "suffit" d'ajouter la ligne packages = ['pyromaths.ex'] dans Setup.py

Bien vu, ça fonctionne aussi avec py2app sur Mac. En juin 2013, j'étais arrivé à une conclusion similaire, que j'avais oubliée depuis… :roll:

Dans le Makefile, j'ai rajouté le nettoyage des fichiers pyromaths.ex/.pyc et du dossier pyromaths.ex/examples.
Avatar de l’utilisateur
Yves
 
Messages: 453
Inscription: Mer 21 Jan 2009, 21:40

Re: Packaging

Messagede Yves » Dim 25 Mai 2014, 10:58

J'ai trouvé une explication sur le problème de nom de fichier en isolant le problème avec le code suivant:

#!/usr/bin/python
# -*- coding: utf-8 -*-

import sys, os
from PyQt4 import QtGui

class Demobug(QtGui.QMainWindow):
def __init__(self):
super(Demobug, self).__init__()
QtGui.QFileDialog.getSaveFileName(self, "Save file", "filename", "Documents Tex (*.tex)")

def main():
app = QtGui.QApplication(sys.argv)
demobug = Demobug()
sys.exit(app.exec_())

if __name__ == '__main__':
main()


Sur OS X 10.8, le nom de fichier filename est présenté par défaut comme attendu:
Image
Sur OS X 10.9, Untitled est affiché au lieu de filename:
Image

En fait, c'est un bug répertorié de Qt:
QFileDialog::getSaveFileName always point to "untitled" on Mac 10.9
Avatar de l’utilisateur
Yves
 
Messages: 453
Inscription: Mer 21 Jan 2009, 21:40

Re: Packaging

Messagede Jérôme » Dim 25 Mai 2014, 14:15

Salut Yves,
ce qui m'ennuie le plus, c'est que le signalement date de janvier dernier et que personne n'a encore commenté ce message. Je me suis enregistré pour voter pour cette "issue" et également suivre les éventuelles avancées.
Je propose qu'on sorte la version 14.05 en spécifiant aux utilisateurs de Mac 10.9 le bug en question.
Qu'en penses-tu ?
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
Jérôme
Administrateur - Site Admin
 
Messages: 1060
Inscription: Sam 26 Aoû 2006, 13:10
Localisation: Nantes

Re: Packaging

Messagede Yves » Dim 25 Mai 2014, 18:41

J'ai trouvé un moyen de contourner ce bug en utilisant l'option DontUseNativeDialog de getSaveFileName.

Dans interface.py, j'ai rajouté from PyQt4 import Qt et adapté le code de la manière suivante pour OS X 10.9:
if sys.platform == "darwin":  # Cas de Mac OS X, QTBUG-36212
f0 = unicode(saveas.getSaveFileName(None, "Enregistrer sous...",
os.path.join(parametres['chemin_fichier'],
u'%s.tex' % filename), "Documents Tex (*.tex)", '', Qt.QFileDialog.DontUseNativeDialog))
else:
f0 = unicode(saveas.getSaveFileName(None, "Enregistrer sous...",
os.path.join(parametres['chemin_fichier'],
u'%s.tex' % filename), "Documents Tex (*.tex)"))
if f0:
System.ajoute_extension(f0, '.tex')
if corrige and not parametres['creer_unpdf']:
if sys.platform == "darwin": # Cas de Mac OS X, QTBUG-36212
f1 = unicode(saveas.getSaveFileName(None, "Enregistrer sous...",
os.path.join(os.path.dirname(f0),
u"%s-corrige.tex" % os.path.splitext(os.path.basename(f0))[0]),
"Documents Tex (*.tex)", '', Qt.QFileDialog.DontUseNativeDialog))
else:
f1 = unicode(saveas.getSaveFileName(None, "Enregistrer sous...",
os.path.join(os.path.dirname(f0),
u"%s-corrige.tex" % os.path.splitext(os.path.basename(f0))[0]),
"Documents Tex (*.tex)"))

La boite de dialogue obtenue ainsi est moche et inutilement complexe, mais c'est toujours mieux qu'une version avec un bug.
Image

Il faudra que je pense à revenir à la boite de dialogue native si le bug est résolu dans une prochaine version de Qt.

Jérôme a écrit:Je propose qu'on sorte la version 14.05… Qu'en penses-tu ?


Voici un lien pour récupérer la version 14.05 de Pyromaths pour OS X 10.7 à 10.9 :)
http://www.pyromaths.org/telecharger/py ... -macos.dmg
Avatar de l’utilisateur
Yves
 
Messages: 453
Inscription: Mer 21 Jan 2009, 21:40

Re: Packaging

Messagede Jérôme » Dim 25 Mai 2014, 19:06

Merci Yves ! Tu es formidable ! :)
Je mets tout ça en ligne ce soir.
La version 14.05 est utilisée depuis quelques temps maintenant sur le site et je n'ai encore reçu aucun message d'erreur. je pense donc que cette version est plutôt stable. Penses-tu pouvoir relancer Didier Roche pour le dépôt Universe ?
Bon dimanche et beau boulot.
À bientôt
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
Jérôme
Administrateur - Site Admin
 
Messages: 1060
Inscription: Sam 26 Aoû 2006, 13:10
Localisation: Nantes

Re: Packaging

Messagede Yves » Dim 25 Mai 2014, 21:02

Merci et bravo à toi aussi pour le packaging Windows ! :)

J'ai contacté Didier Roche, en espérant qu'il trouve un peu de temps pour mettre à jour Pyromaths sur Ubuntu.

Finalement, Pyromaths 14.05 ne cible plus Mac OS X 10.6. L'image disque de Qt 4.8 n'est pas compatible avec Mac OS X 10.6.
To use Qt on or for 10.6, you need to build Qt yourself on a 10.6 machine.
Pour cibler à nouveau OS X 10.6, je pourrais revenir à Qt 4.7 mais j'ai quand même espoir que le bug de QFileDialog sur OS X 10.9 soit corrigé dans une future version. À ce sujet, je me suis également inscrit pour voter pour cette "issue" . Avec OS X 10.7, 10.8 et 10.9, on touche 75 à 80 % des utilisateurs sur Mac. Les utilisateurs restés sur OS X 10.6 peuvent toujour utiliser Pyromaths 13.03.

Avec Django, on dirait qu'il y a un petit soucis avec les balises h1, h2, h3 et h4 dans les articles récemment édités.
Avatar de l’utilisateur
Yves
 
Messages: 453
Inscription: Mer 21 Jan 2009, 21:40

Re: Packaging

Messagede Yves » Dim 25 Mai 2014, 22:32

Jérôme a écrit:j'ai du modifier la fonction __import__ de pyromaths.ex.__init__.py afin que les chemins du binaire Windows soient convenables. Ce n'est pas très joli mais ça fonctionne.

Je viens de réaliser que ta modification entraîne la disparition des vignettes depuis Pyromaths.app, pas depuis les sources. J'ai ajouté un correctif à pyromaths.ex.__init__.py
if (hasattr(sys, "frozen") and sys.platform != "darwin"):
et j'ai repackagé Pyromaths 14.05 pour Mac:
http://www.pyromaths.org/telecharger/py ... -macos.dmg

Pourrais-tu récupérer cette version et la mettre en ligne ?
Merci d'avance.
Avatar de l’utilisateur
Yves
 
Messages: 453
Inscription: Mer 21 Jan 2009, 21:40

Re: Packaging

Messagede Yves » Lun 26 Mai 2014, 09:51

Salu Jérôme,

Il semble qu'il y ait un soucis avec ton adresse mail (Permission denied Invalid user specified). Est-ce que tu as vu la réponse de Didier Roche ?
Avatar de l’utilisateur
Yves
 
Messages: 453
Inscription: Mer 21 Jan 2009, 21:40

Re: Packaging

Messagede Jérôme » Lun 26 Mai 2014, 16:07

En effet, il y avait un problème de droit suite à la mise à jour Debian. C'est à présent réglé (je crois). Je n'ai par contre pas reçu le mail de Didier.
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
Jérôme
Administrateur - Site Admin
 
Messages: 1060
Inscription: Sam 26 Aoû 2006, 13:10
Localisation: Nantes

Re: Packaging

Messagede Yves » Lun 26 Mai 2014, 17:42

OK je t'ai renvoyé le mail de Didier.

Il y a toujours le problème de balises. Par exemple sur la page d'accueil
h4. Nouveautés de cette version :


J'ai rédigé plusieurs posts à la suite et je ne sais pas si tu a vu que j'ai du repackager Pyromaths.app.
Pourrais-tu récupérer cette nouvelle version et la mettre en ligne à la place de celle de hier:
http://www.pyromaths.org/telecharger/py ... -macos.dmg

Merci :)
Avatar de l’utilisateur
Yves
 
Messages: 453
Inscription: Mer 21 Jan 2009, 21:40

PrécédenteSuivante

Retourner vers Propositions

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 12 invités

cron