每次我在树莓派上运行这个脚本时:
import curses
import RPi.GPIO as GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
motor1a = 7
motor1b = 11
motor1e = 22
motor2a = 13
motor2b = 16
motor2e = 15
GPIO.setup(motor1a,GPIO.OUT)
GPIO.setup(motor1b,GPIO.OUT)
GPIO.setup(motor1e,GPIO.OUT)
GPIO.setup(motor2a,GPIO.OUT)
GPIO.setup(motor2b,GPIO.OUT)
GPIO.setup(motor2e,GPIO.OUT)
screen = curses.initscr()
curses.noecho()
curses.cbreak()
curses.halfdelay(3)
screen.keypad(True)
try:
while True:
char = screen.getch()
if char == ord('q'):
break
elif char == curses.KEY_UP:
GPIO.output(motor1a,GPIO.HIGH)
GPIO.output(motor1b,GPIO.LOW)
GPIO.output(motor1e,GPIO.HIGH)
GPIO.output(motor2a,GPIO.HIGH)
GPIO.output(motor2b,GPIO.LOW)
GPIO.output(motor2e,GPIO.HIGH)
# except SOMEEXCEPTION is missing here, I am not sure why there is an exception in the first place
我收到一个错误:
_curses.error: setupterm: could not find terminal
我该如何解决这个问题?
我看到一个帖子,上面说要做以下事情:
您必须设置环境变量
TERM
和TERMINFO
,如下所示:
export TERM=linux ; export TERMINFO=/etc/terminfo
但我不确定在哪里做这一步。
为了使用 curses
,您需要告诉您正在使用哪个终端,以便库可以发送正确的命令。这是通过在运行程序的同一位置运行您在 shell 中提供的命令来完成
$ export TERM=linux
$ export TERMINFO=/etc/terminfo
$ python3 myprogram.py
($
是shell的提示,你可能还有其他东西(
正如我在评论中提到的,您的代码无论如何都不会运行,try
后缺少一个except
(我不确定您需要try
做什么,无论如何您都需要了解这一点才能捕获正确的异常(