为什么我不能在python3中的“from scapy.all import*”之前“import datetime”?
好的,也许我遗漏了一些非常明显的东西,但似乎我无法在从scapy.all import*导入之前导入datetime。如果在从scapy.all import*导入之后导入datetime,则效果良好。我不明白 榜样;这不管用为什么我不能在python3中的“from scapy.all import*”之前“import datetime”?,python,datetime,import,scapy,Python,Datetime,Import,Scapy,好的,也许我遗漏了一些非常明显的东西,但似乎我无法在从scapy.all import*导入之前导入datetime。如果在从scapy.all import*导入之后导入datetime,则效果良好。我不明白 榜样;这不管用 #!/usr/bin/env python3 import os import datetime from scapy.all import * current_time = datetime.datetime.now()
#!/usr/bin/env python3
import os
import datetime
from scapy.all import *
current_time = datetime.datetime.now()
print(current_time)
但这确实
#!/usr/bin/env python3
import os
from scapy.all import *
import datetime
current_time = datetime.datetime.now()
print(current_time)
我使用的是Arch Linux、Python3和最新的scapy。只是比较两个代码片段的猜测,但我怀疑您对编程的乐趣表示欢迎,这正是导入*是一种糟糕做法的原因 scapy也有一个datetime方法,它没有比较两个包之间的定义,因此在这种情况下,导入顺序很重要,因为datetime的定义被覆盖 最好只导入您需要的内容,例如:
#!/usr/bin/env python3
import os
import datetime
from scapy.all import sr, srp
current_time = datetime.datetime.now()
print(current_time)
我只是想比较一下你的两个代码片段,但我怀疑你对编程的乐趣表示欢迎,这正是为什么import*是一种糟糕的做法 scapy也有一个datetime方法,它没有比较两个包之间的定义,因此在这种情况下,导入顺序很重要,因为datetime的定义被覆盖 最好只导入您需要的内容,例如:
#!/usr/bin/env python3
import os
import datetime
from scapy.all import sr, srp
current_time = datetime.datetime.now()
print(current_time)
请详细说明不起作用的原因。到底发生了什么?你收到错误信息了吗?如果你这样做了,发布它,包括完整的堆栈跟踪。下面的答案是有意义的。但是,如果它可能会帮助其他人,我将发布错误;AttributeError:类型对象“datetime.datetime”没有属性“datetime”,请详细说明该属性不起作用。到底发生了什么?你收到错误信息了吗?如果你这样做了,发布它,包括完整的堆栈跟踪。下面的答案是有意义的。但是,如果它可能会帮助其他人,我将发布错误;AttributeError:type object'datetime.datetime'没有属性'datetime',特别是scapy.all导出datetime.datetime,因此datetime将是OP有问题的代码中的类,而不是模块。这也是为什么通常不建议使用import*的原因:p更准确地说,您甚至应该从scapy.sendrecv import sr执行此操作,srp而不是使用scapy.all更确切地说,scapy.all导出datetime.datetime,因此datetime将是OP问题代码中的类,而不是模块。这也是为什么通常不建议使用import*的原因:p更准确地说,您甚至应该从scapy.sendrecv import sr、srp执行导入操作,而不是使用scapy.all