为什么我不能在 python3 中的 "from scapy.all import *" 之前 "import datetime"?

Why can't I "import datetime" before "from scapy.all import *" in python3?

好吧,也许我遗漏了一些非常明显的东西,但似乎我无法在导入 "from scapy.all import *" 之前导入日期时间。如果我在导入 "from scapy.all import *" 之后导入日期时间,它会工作正常。我不明白这个。

示例;这不起作用...

    #!/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。

只是比较你的两个片段的猜测,但我怀疑你有 namespace clash(欢迎享受编程的乐趣),这正是 import * 是不好的做法。

scapy 也有一个 datetime 方法(没有比较两个包之间的定义),所以在这种情况下 import order 确实重要因为 datetime 的定义被 覆盖 .

最好只导入您需要的内容,例如:

#!/usr/bin/env python3
import os
import datetime
from scapy.all import sr, srp
current_time = datetime.datetime.now()
print(current_time)