Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fatal error with using py2exe with dpkt #4

Closed
GoogleCodeExporter opened this issue Mar 14, 2015 · 4 comments
Closed

Fatal error with using py2exe with dpkt #4

GoogleCodeExporter opened this issue Mar 14, 2015 · 4 comments

Comments

@GoogleCodeExporter
Copy link

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
Copy link
Author

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
Copy link
Author

Issue 20 has been merged into this issue.

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

@GoogleCodeExporter
Copy link
Author

Issue 24 has been merged into this issue.

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

@GoogleCodeExporter
Copy link
Author

Fixed in revision 65.

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

  • Changed state: Fixed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant