From: YeungXS67 <yeu...@ya...> - 2007-07-12 01:44:23
|
The source of this error is this (sub "begin_capture")... def begin_capture(self): for t, pkt in self.pcap: stream = dpkt.ethernet.Ethernet(pkt) data = stream.data.data self.ip = "%d.%d.%d.%d" %tuple(map(ord, list(stream.data.dst))) if data.dport == self.port: self.process_stream(data) Its not that it behaves differently in a shell, as I don't run it in any shell; just through console. This is the link to the entire module: http://pastebin.ca/614338 --------------------------------- Yahoo! oneSearch: Finally, mobile search that gives answers, not web links. |
From: YeungXS67 <yeu...@ya...> - 2007-07-12 23:13:55
|
YeungXS67 <yeu...@ya...> wrote: My setup.py: from distutils.core import setup import traceback import py2exe try: setup(name = "python winamp controller", version = "1.0.0", zipfile = "shared.lib", author = "topaz", description = "python winamp controller", console=["pwcb.py"]) except: traceback.print_exc() raw_input("Press enter to exit.") --------------------------------- Be a PS3 game guru. Get your game face on with the latest PS3 news and previews at Yahoo! Games. --------------------------------- Food fight? Enjoy some healthy debate in the Yahoo! Answers Food & Drink Q&A. |
From: Mikael O. <mi...@is...> - 2007-07-12 07:38:00
|
I have never used dpkg, but the only row in your code that can cause "AttributeError: 'str' object has no attribute 'data'" is the following: > data = stream.data.data My guess, without having seen the manual for dpkg, is that stream.data is a string. In that case, I guess that that row should have been data = stream.data HTH /MiO |
From: John M. <sjm...@le...> - 2007-07-12 12:02:23
|
On 12/07/2007 11:44 AM, YeungXS67 wrote: > The source of this error is this (sub "begin_capture")... It's not a "sub", it's a function. You were supposed to tell us which LINE caused the error, instead of leaving us to guess. Did you actually read my suggestion about putting some print statements before the offending line? > > def begin_capture(self): > for t, pkt in self.pcap: > stream = dpkt.ethernet.Ethernet(pkt) Let's guess that the following statement is the one causing the problem. Next question: is it stream that's a 'str' object (with no attribute called 'data', or is it stream.data? Use print statements or a debugger to find out!!! > data = stream.data.data > self.ip = "%d.%d.%d.%d" %tuple(map(ord, list(stream.data.dst))) > > if data.dport == self.port: > self.process_stream(data) > > Its not that it behaves differently in a shell, as I don't run it in any > shell; just through console. This is the link to the entire module: > http://pastebin.ca/614338 > |