Je suis passé à Python 2.5, et je tombe (encore) sur de nouveaux problèmes
d'encodage des scripts.
Alors que tout marchait bien avec Python 2.4.x j'ai maintenant des
problèmes, lorsque je fais un
execfile("toto.py",globals(),globals())
à partir d'un script encodé en utf-8, si le fichier "toto.py" est encodé en
cp1252 (avec l'en-tête qui va bien).
En le convertissant en utf-8 (et en adaptant l'en-tête), le problème
disparaît.
Au passage, le message obtenu, c'est :
"Erreur de syntaxe lig. 3" or, la ligne 3 est... vide !
Ce n'était pas une question, mais juste une indication, pour ceux qui
tomberaient sur le même genre de problèmes.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Amaury Forgeot d'Arc
Bonjour !
Bonjour,
Je suis passé à Python 2.5, et je tombe (encore) sur de nouveaux problèmes d'encodage des scripts.
Alors que tout marchait bien avec Python 2.4.x j'ai maintenant des problèmes, lorsque je fais un execfile("toto.py",globals(),globals()) à partir d'un script encodé en utf-8, si le fichier "toto.py" est encodé en cp1252 (avec l'en-tête qui va bien).
En le convertissant en utf-8 (et en adaptant l'en-tête), le problème disparaît.
Au passage, le message obtenu, c'est : "Erreur de syntaxe lig. 3" or, la ligne 3 est... vide !
Ce n'était pas une question, mais juste une indication, pour ceux qui tomberaient sur le même genre de problèmes.
J'ai essayé de reproduire ton problème (un bug python, ce n'est pas si courant, et un item à son nom dans SourceForge c'est un peu une médaille), mais sans succès. J'ai créé: - un fichier test.py qui contient: # -*- coding: utf-8 -*- execfile("test2.py") - un fichier test2.py qui contient: # -*- coding: cp1252 -*- print u"Héhé" (Evidemment dans l'encoding qui va bien pour chaque, merci Emacs) Et le tout ("python test.py") s'exécute sans souci.
Ton problème vient peut-être d'ailleurs ?
-- Amaury
Bonjour !
Bonjour,
Je suis passé à Python 2.5, et je tombe (encore) sur de nouveaux problèmes
d'encodage des scripts.
Alors que tout marchait bien avec Python 2.4.x j'ai maintenant des
problèmes, lorsque je fais un
execfile("toto.py",globals(),globals())
à partir d'un script encodé en utf-8, si le fichier "toto.py" est encodé en
cp1252 (avec l'en-tête qui va bien).
En le convertissant en utf-8 (et en adaptant l'en-tête), le problème
disparaît.
Au passage, le message obtenu, c'est :
"Erreur de syntaxe lig. 3" or, la ligne 3 est... vide !
Ce n'était pas une question, mais juste une indication, pour ceux qui
tomberaient sur le même genre de problèmes.
J'ai essayé de reproduire ton problème (un bug python, ce n'est pas si
courant, et un item à son nom dans SourceForge c'est un peu une
médaille), mais sans succès.
J'ai créé:
- un fichier test.py qui contient:
# -*- coding: utf-8 -*-
execfile("test2.py")
- un fichier test2.py qui contient:
# -*- coding: cp1252 -*-
print u"Héhé"
(Evidemment dans l'encoding qui va bien pour chaque, merci Emacs)
Et le tout ("python test.py") s'exécute sans souci.
Je suis passé à Python 2.5, et je tombe (encore) sur de nouveaux problèmes d'encodage des scripts.
Alors que tout marchait bien avec Python 2.4.x j'ai maintenant des problèmes, lorsque je fais un execfile("toto.py",globals(),globals()) à partir d'un script encodé en utf-8, si le fichier "toto.py" est encodé en cp1252 (avec l'en-tête qui va bien).
En le convertissant en utf-8 (et en adaptant l'en-tête), le problème disparaît.
Au passage, le message obtenu, c'est : "Erreur de syntaxe lig. 3" or, la ligne 3 est... vide !
Ce n'était pas une question, mais juste une indication, pour ceux qui tomberaient sur le même genre de problèmes.
J'ai essayé de reproduire ton problème (un bug python, ce n'est pas si courant, et un item à son nom dans SourceForge c'est un peu une médaille), mais sans succès. J'ai créé: - un fichier test.py qui contient: # -*- coding: utf-8 -*- execfile("test2.py") - un fichier test2.py qui contient: # -*- coding: cp1252 -*- print u"Héhé" (Evidemment dans l'encoding qui va bien pour chaque, merci Emacs) Et le tout ("python test.py") s'exécute sans souci.
Ton problème vient peut-être d'ailleurs ?
-- Amaury
Michel Claveau
Bonsoir !
Effectivement, sur d'autres tests, ça marche (comme toi).
Cependant, avec mes deux (très gros) scripts à l'origine du problème, il y a bien une histoire liée à l'encodage. Et c'est reproductible et systématique. Sur le 2e script, en ne modifiant que la première ligne et l'encodage à la sauvegarde : # -*- coding: utf-8 -*- ça marche # -*- coding: cp1252 -*- ça plante
En plus, j'ai lu qq part que l'absence d'encodage par défaut était maintenant (avec P 2.5) considéré comme une erreur de syntaxe (ça correspond à mon message d'erreur, ce qui ne doit pas être une simple coïncidence).
-- @-salutations
Michel Claveau
Bonsoir !
Effectivement, sur d'autres tests, ça marche (comme toi).
Cependant, avec mes deux (très gros) scripts à l'origine du problème,
il y a bien une histoire liée à l'encodage. Et c'est reproductible et
systématique. Sur le 2e script, en ne modifiant que la première ligne
et l'encodage à la sauvegarde :
# -*- coding: utf-8 -*- ça marche
# -*- coding: cp1252 -*- ça plante
En plus, j'ai lu qq part que l'absence d'encodage par défaut était
maintenant (avec P 2.5) considéré comme une erreur de syntaxe (ça
correspond à mon message d'erreur, ce qui ne doit pas être une simple
coïncidence).
Effectivement, sur d'autres tests, ça marche (comme toi).
Cependant, avec mes deux (très gros) scripts à l'origine du problème, il y a bien une histoire liée à l'encodage. Et c'est reproductible et systématique. Sur le 2e script, en ne modifiant que la première ligne et l'encodage à la sauvegarde : # -*- coding: utf-8 -*- ça marche # -*- coding: cp1252 -*- ça plante
En plus, j'ai lu qq part que l'absence d'encodage par défaut était maintenant (avec P 2.5) considéré comme une erreur de syntaxe (ça correspond à mon message d'erreur, ce qui ne doit pas être une simple coïncidence).