python curses库异常报错问题: _curses.error: setupterm: could not find terminal

背景

在使用python curses库(终端字符单元显示的处理)时,报错显示_curses.error: setupterm: could not find terminal。

问题复现

# coding: utf-8
import curses, os

def main(stdscr):
    # 清除屏幕
    stdscr.clear()

    # 获取窗口的高度和宽度
    height, width = stdscr.getmaxyx()

    # 待添加的字符串
    text = "%d %d" %(height, width)
    x = width // 2 - len(text) // 2
    y = height // 2

    # 检查是否超出边界
    if x < 0 or y < 0 or (x + len(text)) > width or y > height:
        # 处理或报错

        # 这里只是简单地将字符串截断
        text = text[:width-x]

    # 添加字符串
    stdscr.addstr(y, x, text)
    stdscr.refresh()
    stdscr.getch()

if __name__ == "__main__":
    #is_term = 0
    #for key,value in os.environ.items():
    #    if key == "TERM":
    #        is_term = 1
    #if is_term == 0:
    #    os.environ['TERM'] = 'xterm'

    # 运行 curses 程序
    curses.wrapper(main)

原因分析

主要是shell环境缺少terminal环境设置。

解决方式

设置shell TERM环境变量,代码中可以通过去掉注释的代码解决。

is_term = 0
for key,value in os.environ.items():
    if key == "TERM":
        is_term = 1
if is_term == 0:
    os.environ['TERM'] = 'xterm'

相关推荐

  1. 鸿蒙 ohpm 的异常

    2024-03-28 12:00:03       42 阅读
  2. 【Linux】sudo权限异常提示

    2024-03-28 12:00:03       37 阅读
  3. MySQL主从异常1872

    2024-03-28 12:00:03       36 阅读
  4. 安卓第三方app调用system/lib问题

    2024-03-28 12:00:03       30 阅读
  5. python 问题汇总

    2024-03-28 12:00:03       39 阅读
  6. nginx相关问题

    2024-03-28 12:00:03       33 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-28 12:00:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-28 12:00:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-28 12:00:03       87 阅读
  4. Python语言-面向对象

    2024-03-28 12:00:03       96 阅读

热门阅读

  1. gitlab创建某个时间点分支

    2024-03-28 12:00:03       47 阅读
  2. 【QT学习笔记】目录 (不定时更新)

    2024-03-28 12:00:03       45 阅读
  3. php程序员如何成为编程高手

    2024-03-28 12:00:03       38 阅读
  4. Vue 实践中的理解

    2024-03-28 12:00:03       38 阅读
  5. Vue 模版编译原理

    2024-03-28 12:00:03       45 阅读
  6. 调用第三方接口:springBoot整合forest

    2024-03-28 12:00:03       48 阅读
  7. 使用vue根据表格内容生成Excel表格并下载

    2024-03-28 12:00:03       41 阅读