Я работаю над приложением, которое требует отправки байтового массива на последовательный порт с использованием pyserial модуля. Я был успешно запущен код, чтобы сделать это в пологом:Как отправить массив байтов на последовательный порт с помощью Python?
import serial
ser = serial.Serial('/dev/ttyACM0', 9600, serial.EIGHTBITS, serial.PARITY_NONE, serial.STOPBITS_ONE)
ser.write([4, 9, 62, 144, 56, 30, 147, 3, 210, 89, 111, 78, 184, 151, 17, 129])
Out[7]: 16
Но когда я запускаю тот же самый код в Spyder (оба работают Python 2.7.6) я получаю сообщение об ошибке, так как
import serial
ser = serial.Serial('/dev/ttyACM0', 9600, serial.EIGHTBITS, serial.PARITY_NONE, serial.STOPBITS_ONE)
ser.write([4, 9, 62, 144, 56, 30, 147, 3, 210, 89, 111, 78, 184, 151, 17, 129])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/dist-packages/serial/serialposix.py", line 475, in write
n = os.write(self.fd, d)
TypeError: must be string or buffer, not list
Как я могу заставить Spyder вести себя как Canopy в этом отношении?
'ser.write (ByteArray ([4, 9, 62, 144, 56, 30, 147, 3, 210, 89, 111, 78, 184, 151, 17, 129])) ' –
могут быть разные версии пакета pyserial (' serial.version') в Canopy и Spyder? –