我在 VS Code 中的 Scapy 代码遇到了完全相同的问题。我认为这与 pylint 的工作方式有关。
当您from scapy.all import IP加载时,Python 将加载scapy/all.py,其中包括该行from scapy.layers.all import *。scapy/layers/all.py包括此代码:
for _l in conf.load_layers:
log_loading.debug("Loading layer %s" % _l)
try:
load_layer(_l, globals_dict=globals(), symb_list=__all__)
except Exception as e:
log.warning("can't import layer %s: %s", _l, e)
Run Code Online (Sandbox Code Playgroud)
conf.load_layers结束于scapy/config.py:
load_layers = ['bluetooth', 'bluetooth4LE', 'dhcp', 'dhcp6', 'dns',
'dot11', 'dot15d4', 'eap', 'gprs', 'hsrp', 'inet',
'inet6', 'ipsec', 'ir', 'isakmp', 'l2', 'l2tp',
'llmnr', 'lltd', 'mgcp', 'mobileip', 'netbios',
'netflow', 'ntp', 'ppp', 'pptp', 'radius', 'rip',
'rtp', 'sctp', 'sixlowpan', 'skinny', 'smb', 'snmp',
'tftp', 'vrrp', 'vxlan', 'x509', 'zigbee']
Run Code Online (Sandbox Code Playgroud)
我怀疑 pylint 没有正确遵循这些导入。
我已经尝试了相关 GitHub 问题中建议的解决方法,但它们似乎没有为 Scapy 解决任何问题。Pylint 最终为 Numpy 中的问题添加了特定的解决方法- 没有人为 Scapy 做过这些。
您可以通过直接IP从 Python 文件顶部的相关层导入类来解决这些问题:
from scapy.layers.inet import IP, UDP, TCP, ICMP
Run Code Online (Sandbox Code Playgroud)
等等!不再有关于这些进口的 pylint 投诉。
| 归档时间: |
|
| 查看次数: |
2531 次 |
| 最近记录: |