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 #32

Closed
kbandla opened this issue Jun 4, 2015 · 4 comments
Closed

Fatal error with using py2exe with dpkt #32

kbandla opened this issue Jun 4, 2015 · 4 comments

Comments

@kbandla
Copy link
Owner

kbandla commented Jun 4, 2015

From DigitalF...@gmail.com on July 10, 2007 21:24:46

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
File "dpkt__init__.pyc", line 24, in
File "dpkt\ethernet.pyc", line 113, in
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: http://code.google.com/p/dpkt/issues/detail?id=4

@kbandla
Copy link
Owner Author

kbandla commented Jun 4, 2015

From jirka.ve...@gmail.com on September 03, 2009 04:51:13

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

@kbandla
Copy link
Owner Author

kbandla commented Jun 4, 2015

From dugsong on March 25, 2010 19:45:59

Issue 20 has been merged into this issue.

@kbandla
Copy link
Owner Author

kbandla commented Jun 4, 2015

From dugsong on March 25, 2010 19:54:33

Issue 24 has been merged into this issue.

@kbandla
Copy link
Owner Author

kbandla commented Jun 4, 2015

From dugsong on March 25, 2010 19:56:14

Fixed in revision 65 .

Status: Fixed

@kbandla kbandla closed this as completed Jun 4, 2015
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