3 votes

Python, Emacs et encodage

J'ai des problèmes avec Emacs+Python 2.7.1+Encoding. Selon PEP 0263 Python utilise la même déclaration de l'encodage des sources que emacs.

Il n'y a aucun problème lorsque je commence mon code source Python script avec la balise d'encodage suivante :

#!/usr/bin/python
# -*- mode=python; encoding:us-ascii -*-

Mais lorsque j'ajoute un mode de fin de ligne à mon encodage, comme dans :

#!/usr/bin/python
# -*- mode=python; encoding:us-ascii-unix -*-

Emacs accepte toujours mes informations d'encodage, mais je reçois l'erreur suivante de Python lors de l'exécution de mon script :

File "./unicode.py", line 2
SyntaxError: encoding problem: with BOM

Y a-t-il un moyen d'indiquer à Emacs la terminaison de ligne que je veux utiliser et en même temps d'indiquer à Python l'encodage du fichier source ?

3voto

Philipp Points 21479

Vous pouvez écrire deux blocs : un qui est analysé uniquement par l'interpréteur, et un qui est analysé uniquement par Emacs :

#!/usr/bin/python
# coding: us-ascii

print "Hello World"    

# Local Variables:
# mode: python
# coding: us-ascii-unix
# End:

Notez que (1) us-ascii est la valeur par défaut dans Python 2.x ; et (2) Emacs est généralement capable de déterminer automatiquement la convention de fin de ligne ; vous pouvez donc vous en sortir sans rien déclarer.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X