在新的TX2模组装完环境之后测试了一下之前用的程序,发现调用的串口部分有报错。
Python AttributeError: ‘module‘ object has no attribute ‘Serial‘
翻了一下参看之后看到Stackoverflow里面这一篇,看高赞回答发现自己就是单纯的装错库了。需要调用的库是PySerial,自己装的是Serial。卸掉换成对的就性了。
Python AttributeError: 'module' object has no attribute 'Serial' - Stack Overflowhttps://stackoverflow.com/questions/11403932/python-attributeerror-module-object-has-no-attribute-serial当然也有人是因为自己的程序名(XXX.py)与库名Serial.py冲突了,大家对号入座。
紧接着就是第二个问题,调用串口时被拒绝了。其实就是用户权限不够。
Stack Overflow这一遍说是把自己的用户名添加到tty这的群组里就行了。
linux - python serial [Errno 13] Permission denied: /dev/tty* - Stack Overflow
may be 2 years late but, you simply add your user to the tty group eg:
sudo usermod -a -G tty $USER
但是我的系统是18.04,这个 *** 作指令不太对,所以我又翻了一下答主参考的连接,试了一下直接修改这个串口的访问权限就可以了。666是权限分类表示,其他人文章里有写,感兴趣自己查一下把。注意串口记得改成自己要用的那一个。
Cannot open /dev/ttyS0: Permission denied - Ask Ubuntu">Serial port terminal > Cannot open /dev/ttyS0: Permission denied - Ask Ubuntu
sudo chmod 666 /dev/ttys0
又试了一下,好像用这个指令修改被访问对象的权限每次重启后会重置。最后用了Ask Ubuntu论坛里的高赞回复。
sudo gpasswd --add ${USER} dialout
需要注意的是,在执行上述 *** 作时的用户即是要添加进dialout的用户。例如我在用root用户执行该命令时被添加的用户就是root。
root@ubuntu:/home/nvidia# sudo gpasswd --add ${USER} dialout
Adding user root to group dialout
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)