NewLionwang / dpkt

Automatically exported from code.google.com/p/dpkt
Other
0 stars 0 forks source link

Fatal error with using py2exe with dpkt #4

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. Installing latest version of py2xe
2. Compiling a project which references dpkt package
3. Examine error message

What is the expected output? What do you see instead?
It is expected to run smoothly, but instead... (here's the traceback message)

C:\Projects\pwcb-python\dist>pwcb.exe
Traceback (most recent call last):
  File "pwcb.py", line 5, in <module>
  File "dpkt\__init__.pyc", line 24, in <module>
  File "dpkt\ethernet.pyc", line 113, in <module>
  File "dpkt\ethernet.pyc", line 102, in __load_types
WindowsError: [Error 2] The system cannot find the path specified:
'C:\\Projects
\\pwcb-python\\dist\\library.zip\\dpkt/*.*'

What version of the product are you using? On what operating system?
Version 1.6 of dpkt and version 0.6.6 of py2exe on Windows XP.

Please provide any additional information below.

Original issue reported on code.google.com by DigitalF...@gmail.com on 11 Jul 2007 at 1:24

GoogleCodeExporter commented 8 years ago
Hi, I ran into the same problem today (2 years after the issue was reported). I
solved it by monkeypatching the original code at 3 places

Basically, it involves modifying function __load_types() at 3 locations:
ethernet.py
ip.py
ppp.py

You need to replace 

        d = dict.fromkeys([ x[:-3] for x in os.listdir(os.path.dirname(__file__) or
'.') if x.endswith('.py') ])

with:

    try:
        d = dict.fromkeys([ x[:-3] for x in os.listdir(os.path.dirname(__file__) or
'.') if x.endswith('.py') ])
    except OSError:
        # py2exe compatibility
        tmp = __import__('dpkt')
        if hasattr(tmp, '__loader__'):
            zipfiles = tmp.__loader__._files.keys()
            d = dict.fromkeys([x.split(os.sep)[-1][:-4] for x in zipfiles if 'dpkt'
in x])

Hope it helps someone. The solution isn't elegant, but works for me.

  Jirka

Original comment by jirka.ve...@gmail.com on 3 Sep 2009 at 11:51

GoogleCodeExporter commented 8 years ago
Issue 20 has been merged into this issue.

Original comment by dugsong on 26 Mar 2010 at 2:45

GoogleCodeExporter commented 8 years ago
Issue 24 has been merged into this issue.

Original comment by dugsong on 26 Mar 2010 at 2:54

GoogleCodeExporter commented 8 years ago
Fixed in revision 65.

Original comment by dugsong on 26 Mar 2010 at 2:56