如何解决每次我运行我的脚本时,它都会返回 `_curses.error: must call setupterm() first` 为什么?
我目前正在尝试使用 Python 学习 pwn
。我写了一个简单的 Hello world 脚本:
from pwn import *
io = process('sh')
io.sendline('echo Hello,world')
io.recvline()
让它运行。立即返回两个错误说明:
_curses.error: setupterm: Could not find terminfo database
_curses.error: must call (at least) setupterm() first
我环顾四周,发现解决方案应该说明:
export TERM=linux
export TERMINFO=/etc/terminfo
现在,export 似乎不是有效命令,在等号后放置正斜杠会返回错误 'expression expected'
。
我在 ubuntu 20.04 上使用 pycharm。
那么我的问题是我应该把导出代码放在哪里?
解决方法
为了在非 pty IDE 中运行 pwntools 脚本,最好的方法是禁用 pwntools 终端交互。这可以通过在环境中将 PWNLIB_NOTREM
设置为 1
来完成。脚本内部的示例:
import os
os.environ['PWNLIB_NOTERM'] = '1'
from pwn import * # the modifications need to happen before this import
# code follows
您可以通过同样的方式设置其他环境变量,例如您提到的 TERM
。 export TERM=linux
是一种 POSIX shell 语法(或 bash 语法),而用于设置这样的环境变量的 Python 语法是:
os.environ['TERM'] = 'linux'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。