"SyntaxError: неверный синтаксис" всегда отображается в редакторе mu в режиме REPL с микро: бит

Я использую mu-editor 1.0.0 в Ubuntu 18.04. Когда я пытаюсь выполнить очень простой расчет, такой как "2+2"(без ""), в режиме REPL всегда отображается сообщение об ошибке следующим образом:

on v1.9.2-34-gd64154c73 on 2017-09-01; micro:bit v1.0.0-rc.2 with 
nRF51822

Type "help()" for more information.
>>> 
>>> 2+2
Traceback (most recent call last):
    File "<stdin>", line 2
SyntaxError: invalid syntax
>>> 

и ниже мой экран:

введите описание изображения здесь

Я пытаюсь найти ответ в интернете, но до сих пор не могу понять, как и почему. Пожалуйста, помогите мне попытаться решить эту проблему.

В любом случае, большое спасибо.

============= Обновление 2017/07/25 18:48(Тайвань)==============

Спасибо, дорогой @stijn:)

Я добился определенного прогресса в этом вопросе. Однако я до сих пор не решил эту проблему полностью.

В следующем URL добрый пользователь сети дает ключ к решению проблемы: https://github.com/mu-editor/mu/issues/576

ZanderBrown сказал: "Могу только предположить, что есть какой-то невидимый символ или что-то в этом роде". Это заставляет меня задуматься о том, можно ли относиться к моему методу ввода, устройству ввода или языку (языковой стандарт).

Поскольку я тайваньец, мы используем традиционный китайский (в отличие от упрощенного китайского, используемого в материковом Китае). В /etc/default/locale мои первоначальные настройки следующие:

LANG="zh_TW.UTF-8"
LANGUAGE="zh_TW:zh:en_US:en"
LC_NUMERIC="zh_TW.UTF-8"
LC_TIME="zh_TW.UTF-8"
LC_MONETARY="zh_TW.UTF-8"
LC_PAPER="zh_TW.UTF-8"
LC_IDENTIFICATION="zh_TW.UTF-8"
LC_NAME="zh_TW.UTF-8"
LC_ADDRESS="zh_TW.UTF-8"
LC_TELEPHONE="zh_TW.UTF-8"
LC_MEASUREMENT="zh_TW.UTF-8"

Затем я изменяю содержимое, чтобы оно было следующим:

LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=lzh_TW.UTF-8
LC_TIME=en_US.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=lzh_TW.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=lzh_TW.UTF-8
LC_NAME=lzh_TW.UTF-8
LC_ADDRESS=lzh_TW.UTF-8
LC_TELEPHONE=lzh_TW.UTF-8
LC_MEASUREMENT=lzh_TW.UTF-8
LC_IDENTIFICATION=lzh_TW.UTF-8
LC_ALL=

Во-вторых, я попытался изменить свойрегион и язык на английский и США.

введите описание изображения здесь

В-третьих, я настроилсистему ввода с клавиатуры на нет

введите описание изображения здесь

Наконец, я перезагружаю свою систему. Мы можем увидеть интересный результат:

введите описание изображения здесь

Если я скопирую код из другого текстового редактора и вставлю его в режим REPL, он может вывести правильный результат, но слова после >>> mark будут странными...

Если я попытаюсь использовать клавиатуру для ввода напрямую, она не будет повторять символы или не будет отвечать. введите описание изображения здесь

Кроме того, я могу использовать режим Minicom, чтобы использовать REPL, но он все еще повторяет символы....

введите описание изображения здесь

=================== Обновление 2017/07/26 14:26(Тайвань)============== Спасибо всем. Я почти решил эту проблему. Вот мои решения и возможные причины.

Мой друг, инженер по аппаратному обеспечению, сказал мне, чтобы я попробовал использовать набор под названиемMinicom из Linux. Мы подключили micro:bit к компьютеру (ubuntu), а затем использовали minicom для проверки состояния соединения.

$ minicom /dev/ttyACM0

(если вы хотите знать порт, который вы подключаете с помощью micro:bit, вы можете использовать команду с именем dmesg.) ВыберитеSerial и Port Setup. введите описание изображения здесь

Проверьте, чтобы опция "Последовательное устройство" совпадала с результатом, напечатанным командой dmesg. Если это не так, измените его. И, самое главное, оставьте опцию Hardware Flow Control равной YES. Я не понимаю принципа, но после тестирования необходимо сохранить ДА. введите описание изображения здесь

После выше, вы можете выбратьEXIT(не EXIT из MINICOM), чтобы войти в режим REPL в minicom с подключением micro:bit. Вы можете использовать Python-кодирование в этой ситуации, даже на моем экране консоли все еще отображаются символы, которые я вводил, когда я однажды набирал...

На следующем шаге яполностью отключил мой компьютер. И снова включите мой компьютер (Ubuntu).

Чудо случилось.

После того, как яПОЛНОСТЬЮ ВЫКЛЮЧЕН и снова включу свой компьютер (ubuntu), я могу использовать режим REPL в MU-редакторе и minicom без двухсимвольных и других проблем. Пожалуйста, прости меня, я не могу поместить свою фотографию ScreenSchot, потому что я забыл принести мой микро: бит чип в мой офис.

Однако на моем ноутбуке (Debian 9) способ, который я использовал, как описано выше, может работать после изменения метода ввода системы на en, но не на китайский метод ввода.

Итак, я думаю, что две основные причины проблем:

1.Настройка локали и системаметодов ввода. Лучше использовать настройку английской локали и чисто английские методы ввода.

2. Проверьте, установлен ли аппаратный контроль потока на ДА.

3.После настройки всех, пожалуйста, полностью выключите и снова включите ваш компьютер или ноутбук. НЕ просто выходить из системы или перезагружаться.

0 ответов

Другие вопросы по тегам