我曾经在Python2.7上开发过一个程序,并且需要针对Python 2.6.6对其进行重新设计。我做了一些小的更改,但是在尝试编译时收到此错误。有人遇到过吗?我在Google上找不到很多东西。任何帮助将不胜感激
Traceback (most recent call last):
File "makexml.py", line 13, in <module>
from scapy.all import rdpcap
File "/user/.pyenv/versions/2.6.6/lib/python2.6/site-
packages/scapy/all.py", line 11, in <module>
from scapy.config import *
File "/user/.pyenv/versions/2.6.6/lib/python2.6/site-
packages/scapy/config.py", line 84
self.layers = {owner for f in self.fields for owner in f.owners}
^
SyntaxError: invalid syntax
答案 0 :(得分:1)
集合理解是got backported to Python 2.7从Python 3开始的一项新功能。
因此,如果您尝试在较早的版本中使用它,则会得到SyntaxError
。
最简单的更改是将生成器表达式传递给set
构造函数:
self.layers = set(owner for f in self.fields for owner in f.owners)
(这将一直运行到2.4。在此之前,没有内置set
,也没有生成器表达式,但是您可能会遇到更大的问题,例如,异常…)
答案 1 :(得分:0)
Scapy 2.4.0与Python 2.6不兼容。您应该将Scapy降级到2.3.3,它支持Python 2.6(我认为是2.5)。