【问题标题】:Pyreadline not working properly with scapyPyreadline 无法与 scapy 一起正常工作
【发布时间】:2017-07-26 12:54:13
【问题描述】:

我在 Windows 环境中使用 scapy。但我无法读取控制台上的输出。问题出在我导入 scapy 的特定文件上。如果我直接运行 scapy,那么控制台上的输出是可读格式。

Welcome to Scapy (2.3.3)
Working
>>> packet = TCP()
>>> packet.show()
←[0m###[←[0m ←[31m←[1mTCP←[0m ←[0m]###←[0m
  ←[34msport←[0m←[0m=←[0m ←[35mftp_data←[0m
  ←[34mdport←[0m←[0m=←[0m ←[35mhttp←[0m
  ←[34mseq←[0m←[0m=←[0m ←[35m0←[0m
  ←[34mack←[0m←[0m=←[0m ←[35m0←[0m
  ←[34mdataofs←[0m←[0m=←[0m ←[35mNone←[0m
  ←[34mreserved←[0m←[0m=←[0m ←[35m0←[0m
  ←[34mflags←[0m←[0m=←[0m ←[35mS←[0m
  ←[34mwindow←[0m←[0m=←[0m ←[35m8192←[0m
  ←[34mchksum←[0m←[0m=←[0m ←[35mNone←[0m
  ←[34murgptr←[0m←[0m=←[0m ←[35m0←[0m
  ←[34moptions←[0m←[0m=←[0m ←[35m[]←[0m

>>>
Error in atexit._run_exitfuncs:
Traceback (most recent call last):
  File "C:\Python27\lib\atexit.py", line 24, in _run_exitfuncs
    func(*targs, **kargs)
  File "C:\Python27\lib\site-packages\scapy\main.py", line 244, in scapy_write_h
istory_file
    readline.write_history_file(conf.histfile)
  File "C:\Python27\lib\site-packages\pyreadline\rlmain.py", line 169, in write_
history_file
    self.mode._history.write_history_file(filename)
  File "C:\Python27\lib\site-packages\pyreadline\lineeditor\history.py", line 94
, in write_history_file
    fp.write(ensure_str(line.get_line_text()))
  File "C:\Python27\lib\site-packages\pyreadline\lineeditor\lineobj.py", line 25
6, in get_line_text
    buf = list(map(ensure_unicode, buf))
NameError: global name 'map' is not defined
Error in sys.exitfunc:
Traceback (most recent call last):
  File "C:\Python27\lib\atexit.py", line 24, in _run_exitfuncs
    func(*targs, **kargs)
  File "C:\Python27\lib\site-packages\scapy\main.py", line 244, in scapy_write_h
istory_file
    readline.write_history_file(conf.histfile)
  File "C:\Python27\lib\site-packages\pyreadline\rlmain.py", line 169, in write_
history_file
    self.mode._history.write_history_file(filename)
  File "C:\Python27\lib\site-packages\pyreadline\lineeditor\history.py", line 94
, in write_history_file
    fp.write(ensure_str(line.get_line_text()))
  File "C:\Python27\lib\site-packages\pyreadline\lineeditor\lineobj.py", line 25
6, in get_line_text
    buf = list(map(ensure_unicode, buf))
NameError: global name 'map' is not defined

【问题讨论】:

    标签: python-2.7 scapy


    【解决方案1】:

    通过安装包“Colorama”能够解决问题。这个问题已经在下面的thread 上讨论过,并且也给出了答案。安装软件包后,我在脚本中添加了以下代码。

    from colorama
    init(convert=True)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-14
      • 2020-08-19
      • 2013-02-06
      • 2019-02-02
      • 2021-10-15
      • 2016-07-05
      • 2016-09-13
      相关资源
      最近更新 更多