在Google Colab中导入pwntools遇fileno错误的求助咨询
在Google Colab中导入pwntools时遇到
UnsupportedOperation: fileno错误的解决方法 在Google Colab中尝试导入pwntools库时,出现以下错误导致无法完成导入:
UnsupportedOperation Traceback (most recent call last) <ipython-input-2-6911e2dbc5cd> in <cell line: 1>() ----> 1 from pwn import * 2 import numpy as np 3 4 p = process('./moon') 5 10 frames /usr/local/lib/python3.9/dist-packages/pwn/__init__.py in <module> 2 from __future__ import absolute_import 3 ----> 4 from pwn.toplevel import * 5 6 pwnlib.args.initialize() /usr/local/lib/python3.9/dist-packages/pwn/toplevel.py in <module> 20 from pprint import pprint 21 ----> 22 import pwnlib 23 from pwnlib import * 24 from pwnlib.asm import * /usr/local/lib/python3.9/dist-packages/pwnlib/__init__.py in <module> 39 ] 40 ----> 41 from . import args /usr/local/lib/python3.9/dist-packages/pwnlib/args.py in <module> 58 import sys 59 ----> 60 from pwnlib import term 61 from pwnlib.context import context 62 /usr/local/lib/python3.9/dist-packages/pwnlib/term/__init__.py in <module> 4 import sys 5 ----> 6 from pwnlib.term import completer 7 from pwnlib.term import key 8 from pwnlib.term import keymap /usr/local/lib/python3.9/dist-packages/pwnlib/term/completer.py in <module> 5 import re 6 ----> 7 from pwnlib.term import readline 8 9 /usr/local/lib/python3.9/dist-packages/pwnlib/term/readline.py in <module> 10 from pwnlib.term import keymap as km 11 from pwnlib.term import term ----> 12 from pwnlib.term import text 13 14 cursor = text.reverse /usr/local/lib/python3.9/dist-packages/pwnlib/term/text.py in <module> 128 129 tether = sys.modules[__name__] --> 130 sys.modules[__name__] = Module() /usr/local/lib/python3.9/dist-packages/pwnlib/term/text.py in __init__(self) 42 'white': 7, 43 } --> 44 self._reset = termcap.get('reset') 45 self._attributes = {} 46 for x, y in [('italic' , 'sitm'), /usr/local/lib/python3.9/dist-packages/pwnlib/term/unix_termcap.py in get(cap, *args, **kwargs) 23 24 if cache is None: --> 25 init() 26 s = cache.get(cap) 27 if not s: /usr/local/lib/python3.9/dist-packages/pwnlib/term/unix_termcap.py in init() 57 # Fix for BPython 58 try: --> 59 curses.setupterm() 60 except curses.error as e: 61 import traceback UnsupportedOperation: fileno
错误原因
pwntools的终端处理模块(pwnlib.term)初始化时,会调用curses.setupterm()获取终端控制参数。但Google Colab运行在浏览器虚拟环境中,没有真实的终端文件描述符(fileno),导致该函数调用失败,抛出UnsupportedOperation错误。
解决方法
在导入pwntools前,先设置环境变量TERM为dumb,让pwntools使用极简终端模式,规避需要真实终端的功能调用。具体代码如下:
import os os.environ['TERM'] = 'dumb' from pwn import *
内容的提问来源于stack exchange,提问作者gr007
相关产品推荐
相关产品推荐

