probleme de compilation py2exe "decode"

probleme de compilation py2exe "decode" - Python - Programmation

Marsh Posté le 27-08-2004 à 13:36:00    

Bonjour
 
J'utilise dans un script l'instruction  

Code :
  1. text=text.decode("latin-1","replace" )


lorsque je lance le script de puis idle : pas de probleme, tout va bien.
lorsque je compile le script avec py2exe : ca compile, je peux executer, mais arrivé à la ligne du decode j'ai le message d'erreur suivant :

Code :
  1. LookupError: unknown encoding: latin-1


 
si quelqu'un a une piste ?

Reply

Marsh Posté le 27-08-2004 à 13:36:00   

Reply

Marsh Posté le 27-08-2004 à 14:20:56    

Code :
  1. decode ('latin-1', 'replace')


 
 
?

Reply

Marsh Posté le 27-08-2004 à 15:37:49    

c'est une instruction qui me permet de transoformer un texte formaté en latin-1 vers un format qui est compris par Tkinter, cela permet de gérer les charactères accentués.


Message édité par laurent2a le 27-08-2004 à 15:39:24
Reply

Marsh Posté le 27-08-2004 à 15:41:27    

je n'ai pas recopié ton code, c'est une proposition

Reply

Marsh Posté le 27-08-2004 à 16:13:06    

regarde ou est défini latin-1 et dit explicitement à Py2Exe de le rajouter dans le package
 
(accessoirement Py2exe ne compile rien, il met juste un interpréteur python en standalone avec les libs que t'as linkées)


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
Reply

Marsh Posté le 27-08-2004 à 21:10:51    

JagStang a écrit :

je n'ai pas recopié ton code, c'est une proposition


 
D'accord, je vais acheter des lunettes :)
mais malheureusement (après essai) ce n'est pas le problème
 
merci quand même

Reply

Marsh Posté le 27-08-2004 à 21:24:30    

Masklinn a écrit :

regarde ou est défini latin-1 et dit explicitement à Py2Exe de le rajouter dans le package


en fait latin-1 est defini dans codecs.py dans python23/lib mais j'utilise en fait une methode de string (built-in) donc a priori pas besoin de codecs.py...
 
dans le script j'ai fais un
from codecs import *  
from string import *  
--> tout fonctionne toujours sous idle, mais l'exe bloc toujours au même endroit
 
dans le setup de py2exe j'ai fais un
from codecs import *  
from string import *  
--> tout fonctionne toujours sous idle, mais l'exe bloc toujours au même endroit
 
 
 [:atog]  j'ai mal à la tête
 

Masklinn a écrit :

(accessoirement Py2exe ne compile rien, il met juste un interpréteur python en standalone avec les libs que t'as linkées)


 
On est d'accord :) mais qu'est ce que tu veux que je dise ?
 

Reply

Marsh Posté le 27-08-2004 à 21:30:46    

Il manque sans doute l'import de site.py chose que l'interpreteur fait automatiquement.

Reply

Marsh Posté le 29-08-2004 à 15:37:14    

Kristoph a écrit :

Il manque sans doute l'import de site.py chose que l'interpreteur fait automatiquement.


 
En fait ce n'était pas le problème, je te remercie cependant pour cette observation qui pourra peut être éviter de prochains maux de tête.
 
En fait c'est Masklinn qui avait la solution, sauf que je n'avait pas compris : en fait il existe un latin_1.py dans Python23\Lib\encodings\.
 
Il suffit de faire un import latin_1 et de copier latin_1.py dans le répertoire du script pour que tout se passe sans problème.
 
En tout cas, merci à tous  :hello:


Message édité par laurent2a le 29-08-2004 à 15:38:32
Reply

Marsh Posté le 31-08-2004 à 16:31:37    

en fait tu as fait un peu différement de ma proposition: il est possible de demander (dans le script de génération de l'exe) de demander à py2exe d'inclure certains package, histoire d'être sur qu'il ne les oublie pas (normalement il récupère tous les packages linkés par un import, mais c'est pas systématique)
 
un truc du genre

Code :
  1. import sys
  2. assert sys.version >= '2', "Install Python 2.0 or greater"
  3. from distutils.core import setup
  4. import py2exe
  5. import os
  6. setup(
  7.     # The first three parameters are not required, if at least a
  8.     # 'version' is given, then a versioninfo resource is built from
  9.     # them and added to the executables.
  10.     version = "0.0.5",
  11.     description = "truc",
  12.     name = "machin",
  13.     # targets to build
  14.     windows = [ {'script': "Browser.py",
  15.                 'icon_resources': [ (1, 'Icon.ico')],
  16.                 'excludes': ["pywin", "pywin.debugger", "pywin.debugger.dbgcon", "pywin.dialogs", "pywin.dialogs.list","Tkconstants","Tkinter","tcl"] ,}],
  17.     options = {"py2exe": {"compressed": 1,"optimize": 2}},
  18.     )


mais avec des includes au lieu du excludes quoi (il y a pas mal de tutos py2exe)


Message édité par masklinn le 31-08-2004 à 16:32:19

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
Reply

Marsh Posté le 31-08-2004 à 16:31:37   

Reply

Marsh Posté le 31-08-2004 à 16:49:07    

Moi j'insiste sur le fait que py2exe oublie d'importer site.py ;)

Reply

Marsh Posté le 02-09-2004 à 18:05:31    

ben c'est ce que je dis non?


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
Reply

Marsh Posté le 02-09-2004 à 18:35:41    

La solution pour corriger ça est assez simple, il suffit de mettre un "import site" dans le fichier principal.

Reply

Marsh Posté le 03-09-2004 à 10:27:41    

ou de le mettre dans py2exe :o


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
Reply

Marsh Posté le 06-09-2004 à 21:11:40    

Merci Kristoph, je vais essayé de nouveau avec seulement site.py
 
Merci Masklinn (explication simple et claire, j'apprécie. Est ce que tu as un tuto sur py2exe à conseiller ? (sinon ce n'est pas grave, je prendrais le premier qui me tombera sous la main).
 
Si avec des conseils comme ça je ne m'en sort pas...

Reply

Marsh Posté le 06-09-2004 à 21:37:42    

je me souviens plus de l'adresse, mais il y a un Wiki Py2Exe, j'en ai vu un seul donc tu devrais pouvoir le trouver :)
 
Va sur le site officiel, il y a surement une paire de liens en bonus et un ou deux guides


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed