Ошибки при подключении к кирпичу nxt

Я использую nxt-python для подключения к моему кирпичу nxt из моего Raspberry Pi.

После некоторой борьбы с версиями библиотек bluetooth и usb на python 3.2 мне удалось установить соединение через bluetooth и запросить пароль. После некоторой борьбы я обнаружил, что могу печатать bluetooth-agent PASSKEY & (и замените PASSKEY на пароль) в терминале перед запуском скрипта python, который соединяется с кирпичом nxt, и, насколько я знаю, работает нормально. Но сейчас выдает ошибку. Подключение через USB выдает другую ошибку.

Вот ошибка, которую я получаю с обоими методами (USB и BT) и включенной отладкой:

USB: True BT: True Fantom: False FUSB: False FBT: False
Traceback (most recent call last):
  File "/usr/local/lib/python3.2/dist-packages/nxt/locator.py", line 138, in find_one_brick
    if name and info[0].strip('\0') != name:
TypeError: Type str doesn't support the buffer API
Failed to connect to possible brick
Traceback (most recent call last):
  File "/usr/local/lib/python3.2/dist-packages/nxt/locator.py", line 131, in find_one_brick
    info = b.get_device_info()
  File "/usr/local/lib/python3.2/dist-packages/nxt/brick.py", line 27, in poll
    self.sock.send(ogram.bytes())
  File "/usr/local/lib/python3.2/dist-packages/nxt/bluesock.py", line 57, in send
    l0 = len(data.encode('utf-8')) & 0xFF
AttributeError: 'bytes' object has no attribute 'encode'
Failed to connect to possible brick
No brick was found.
    Is the brick turned on?
    For more diagnosing use the debug=True argument or
    try the 'nxt_test' script located in /bin or ~/.local/bin
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.2/dist-packages/nxt/locator.py", line 154, in find_one_brick
    raise BrickNotFoundError
nxt.locator.BrickNotFoundError

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

РЕДАКТИРОВАТЬ

Когда я пытаюсь импортировать с помощью Python 2, это дает мне эту ошибку:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/nxt/__init__.py", line 15, in <module>
    from nxt.locator import find_one_brick, Method
  File "/usr/local/lib/python2.7/dist-packages/nxt/locator.py", line 49
    if not silent: print("USB module unavailable, not searching there", file=sys.stderr)
                                                                            ^
SyntaxError: invalid syntax

1 ответ

Я скачал стабильную версию v2.2.2 вместо клонирования главного коммита, и он прекрасно работает под python2. Жаль, что это не Python3.

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