¿La clave de hash de OSX predeterminada produce un error no ASCII en Python?

1

Estoy usando OSX Yosemite en una Macbook Pro con un teclado del Reino Unido. Cuando escribo # en un archivo de Python (usando Alt + 3) A veces, pero no siempre, veo este error de sintaxis cuando intento ejecutar el archivo de Python:

SyntaxError: Non-ASCII character '\xc2' in file

Por lo general, puedo solucionarlo copiando y pegando un carácter hash de otra parte del archivo.

Podría solucionarlo configurando manualmente cada Python con el que trabajo en la codificación UTF-8:

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

pero eso no es realmente práctico cuando estoy trabajando en el código de otras personas.

¿Hay alguna manera en que pueda restablecer el valor de esta clave para que sea compatible con ASCII? # para evitar este error?

Richard
fuente
1
¿Qué editor estás usando?
Matteo
Lo siento, estoy usando Sublime.
Richard
(Eso es texto sublime 3).
Richard
¿Alguna vez hiciste algún progreso? Esto también me pasa a mí y tú eres el único que he encontrado con el mismo problema. Al destrozar mi cerebro intentando resolverlo, es como si inserta un personaje invisible en el que Python se engancha. ¿Estás usando el teclado inalámbrico?
AndyC

Respuestas:

0

Hay un doble problema en el trabajo aquí. Una causa puede ser un archivo .DS_Store que contiene caracteres UTF-8 dentro del directorio local que se está leyendo entre bambalinas. Si este es el caso, simplemente agregando la codificación a la parte superior del archivo lo arreglará:

# coding: utf-8

Una segunda causa puede ser cómo obtenemos el código de un lugar a otro. Si está en una Mac, copia el código y luego péguelo en un archivo con cat de la siguiente manera:

$ cat > file.py       (<-- Hit Command-V to paste while doing this)

Esto puede llevar a un tema interesante. El formato, más específicamente el espacio principal, parece Pythonic. Sin embargo, sus pestañas han sido reemplazadas por algo que contiene caracteres anchos que ninguna configuración de codificación de caracteres parece resolver. Si se enfrenta a esto, simplemente reemplace todos los espacios en blanco principales y Python estará muy feliz.

David Hoelzer
fuente