Типова хеш-клавіша OSX виробляє помилку ASCII у Python?


1

Я використовую OSX Yosemite на Macbook Pro з англійською клавіатурою. Коли я набираю # у файл Python (використовуючи Alt + 3) Я іноді, але не завжди, бачу цю синтаксичну помилку, коли я намагаюся запустити файл Python:

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

Зазвичай я можу виправити це, скопіювавши та вставши хеш-символ з іншого місця у файлі.

Я можу це виправити, встановивши вручну кожний Python, який я коли-небудь працював, до кодування UTF-8:

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

але це не дуже практично, коли я працюю над кодом інших людей.

Чи є спосіб я можу скинути значення цього ключа до ASCII-дружній # щоб уникнути цієї помилки?


1
Який редактор ви використовуєте?
Matteo

На жаль, я використовую Sublime.
Richard

(Це Високий Текст 3).
Richard

Ви коли-небудь прогресували? Це трапляється зі мною теж, і ви єдиний, кого я знайшла з тією ж проблемою. Розриваючи мій мозок, намагаючись розібратися, це все одно, що він вставляє невидимий символ, на який береться Python. Ви використовуєте безпроводову клавіатуру?
AndyC

Відповіді:


0

Тут діє двояка проблема. Однією з причин може бути файл .DS_Store, що містить UTF-8 символів всередині нього в локальному каталозі, який читається за лаштунками. Якщо це так, просто додавши кодування у верхню частину файлу, це виправити:

# coding: utf-8

Другою причиною може бути те, як ми отримуємо код з одного місця в інше. Якщо ви перебуваєте на комп'ютері Mac і копіюєте код, а потім вставляєте його у файл з cat, виконайте такі дії:

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

Це може призвести до цікавого питання. Форматування, точніше провідний простір, виглядає Pythonic. Однак ваші вкладки були замінені на щось, що містить широкі символи, які не може вирішити жодна конфігурація кодування. Якщо ви зіткнетеся з цим, просто змініть всі провідні пробіли, і Python буде дуже щасливий.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.