Почему я не могу «импортировать дату и время» до «из scapy.all import *» в python3? - PullRequest
1 голос
/ 26 мая 2020

Хорошо, возможно, мне не хватает чего-то совершенно очевидного, но мне кажется, что я не могу импортировать datetime ДО того, как я импортирую "from scapy.all import *". Он отлично работает, если я импортирую datetime ПОСЛЕ импорта "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.

1 Ответ

3 голосов
/ 26 мая 2020

Просто предположение, сравнивая ваши два фрагмента, но я подозреваю, что у вас есть пространство имен cla sh (добро пожаловать в радости программирования), и именно поэтому 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)
...