i m пытается захватить пакет ethernet с помощью pycap http://pycap.sourceforge.net/. когда я использую следующую команду в приглашении python с привилегиями root, она работает
>>>import pycap.capture
>>>p = pycap.capture.capture("wlan0")
>>>p.next()
(Ethernet(type=0x608, 00:1b:b1:46:53:5d -> ff:ff:ff:ff:ff:ff), ARP(op=0x1, protocol=0x800, 00:1b:b1:46:53:5d (192.16.68.10) -> 00:00:00:00:00:00 (192.16.110.39)), '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', 1307898356.222398)
Но если я запустил эти команды как script, я получаю следующую ошибку
>>>sudo python pycap.py
Traceback (most recent call last):
File "pycap.py", line 2, in <module>
from pycap import *
File "/home/nikhil/Code/Python/pycap.py", line 5, in <module>
p = capture.capture(device)
NameError: name 'capture' is not defined
Любые предложения? pycap http://pycap.sourceforge.net/ говорит, что для этого требуется python2.3 и im, используя python2.6. Это проблема?
Ваш script с помощью pycap
называется pycap
сам, поэтому import pycap
сам импортирует (.
обычно является первым каталогом пути импорта). Поскольку импорт является кешем, это не приводит к бесконечной рекурсии, но вместо этого дает вам ссылку на ваш собственный модуль, который, конечно же, не определяет capture
или что-то еще. Переименуйте его.