You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux中yenc安装失败及Python2.7运行脚本报错求助

问题与解决方案

问题详情

1. Python3环境安装yenc失败

  • 在Linux系统执行pip install yenc或pip3 install yenc均失败,报错Error: Failed building wheel for yenc
  • 已尝试更新pip(当前版本23.2.1)、安装依赖库等方案,无效
  • 当前Python版本为3.10.4

2. Python2.7环境安装后运行脚本报错

  • 用pip2.7成功安装yenc-0.4.0,但运行脚本出现两个错误:
    • scapy导入错误:ImportError: cannot import name certificate_transparency
    • yenc属性错误:yenc.decode不存在(确认官方文档中decode是有效属性)
  • 将脚本从yenc.py重命名后,yenc属性错误消失,但scapy导入问题仍存在

相关脚本

# Using Python
#!/usr/bin/python

from scapy.all import *
import yenc 

pkts = rdpcap("./merge.pcap")
file = open("./data","w")

for i in range(0,len(pkts)):
    file.write(pkts[i].load)
    deco = yenc.decode("./data","./result")

解决方案

一、Python3安装yenc失败的解决办法

yenc官方0.4.0版本不支持Python3.6+,这是构建wheel失败的核心原因,可选两种方案:

  1. 安装Python3兼容的分支版本
    克隆社区维护的Python3适配分支,源码安装:
    git clone https://github.com/waywardgeek/yenc.git
    cd yenc
    git checkout python3
    python3 setup.py install
    
  2. 改用Python3兼容的替代库
    使用puyenc(专为Python3开发的yenc实现):
    pip3 install puyenc
    

二、Python2.7环境scapy导入错误的解决办法

这个错误是因为新版scapy在Python2.7中存在兼容性问题,可通过以下方式解决:

  1. 安装适配Python2.7的scapy旧版本
    pip2.7 install scapy==2.4.5
    
  2. 精准导入所需模块
    脚本只用到了rdpcap,无需导入全部模块,替换导入语句:
    from scapy.utils import rdpcap
    
    避免触发certificate_transparency的导入冲突

三、yenc.decode的正确用法

在Python2.7的yenc-0.4.0中,yenc.decode接受的是文件对象而非文件路径,脚本写法有误,修正示例:

#!/usr/bin/python
from scapy.utils import rdpcap
import yenc 

pkts = rdpcap("./merge.pcap")

# 先把pcap中的load写入文件
with open("./data", "wb") as f:
    for pkt in pkts:
        f.write(pkt.load)

# 调用yenc.decode处理文件
with open("./data", "rb") as in_file, open("./result", "wb") as out_file:
    yenc.decode(in_file, out_file)

另外注意:脚本文件名不要和库名重名(比如yenc.py),否则会优先导入本地脚本而非系统库,导致属性找不到的问题


内容的提问来源于stack exchange,提问作者known user

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 16:17:58