"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.После настройки всех, пожалуйста, полностью выключите и снова включите ваш компьютер или ноутбук. НЕ просто выходить из системы или перезагружаться.