Ubuntu18.04运行curses配置工具遇nocbreak()返回ERR错误求助
问题
运行基于curses库的配置工具jetson-io.py时出现报错,系统为Ubuntu 18.04,已尝试安装ncurses及更换权限运行,strace输出如下:
10:49:05.285312 write(2, "Traceback (most recent call last"..., 477Traceback (most recent call last): File "/usr/lib/python3.6/curses/__init__.py", line 78, in wrapper cbreak() _curses.error: cbreak() returned ERR During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/opt/nvidia/jetson-io/jetson-io.py", line 594, in <module> curses.wrapper(JetsonIO) File "/usr/lib/python3.6/curses/__init__.py", line 100, in wrapper nocbreak() _curses.error: nocbreak() returned ERR ) = 477
解决方案
- 确保在真实物理终端或支持curses特性的远程终端(如开启了tty支持的SSH连接)运行工具,部分图形界面下的伪终端可能不兼容curses的终端控制指令。
- 安装ncurses开发组件,仅基础包可能无法满足jetson-io的依赖:
sudo apt install libncurses5-dev libncursesw5-dev - 检查并设置正确的终端环境变量,执行以下命令后再运行工具:
export TERM=xterm-256color - 尝试用
su或sudo -i切换到完整root环境运行,避免sudo传递环境变量不完整导致的问题。 - 先验证终端的curses支持是否正常,运行以下测试脚本:
如果测试脚本也报错,说明终端环境本身存在问题,需优先修复终端的tty支持。import curses def main(stdscr): stdscr.addstr(0, 0, "Curses test successful") stdscr.refresh() stdscr.getch() curses.wrapper(main)
内容的提问来源于stack exchange,提问作者Tony Karlsson
相关产品推荐
相关产品推荐

