默认的 OSX 哈希键在 Python 中产生非 ASCII 错误?

默认的 OSX 哈希键在 Python 中产生非 ASCII 错误?

我在 Macbook Pro 上使用英国键盘的 OSX Yosemite。当我在#Python 文件中键入内容(使用 Alt+3)时,有时(但并非总是)在尝试运行 Python 文件时会看到此语法错误:

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

我通常可以通过从文件的其他位置复制并粘贴井号来修复它。

我可以通过将我曾经使用过的每个 Python 手动设置为 UTF-8 编码来修复此问题:

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

但当我处理其他人的代码时,这并不实用。

有什么方法可以将此键的值重置为 ASCII 友好值#以避免此错误?

答案1

这里有两个问题。一个原因可能是本地目录中的 .DS_Store 文件包含 UTF-8 字符,而该文件正在后台读取。如果是这种情况,只需将编码添加到文件顶部即可解决问题:

# coding: utf-8

第二个原因可能是我们如何将代码从一个地方传输到另一个地方。如果您使用的是 Mac,并且复制代码,然后使用 cat 将其粘贴到文件中,如下所示:

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

这可能会导致一个有趣的问题。格式,更具体地说是前导空格,看起来很符合 Python 风格。但是,制表符已被替换为包含宽字符的内容,无论多少字符编码配置似乎都无法解决。如果您遇到此问题,只需替换所有前导空格,Python 就会非常高兴。

相关内容