My py2exe app can’t find MIBs¶
- I packed my pysnmp-based application with py2exe. When I run my app, it throws a traceback like this:
File “pysnmpentityrfc3413onelinercmdgen.pyc”, line 116, in __init__ File “pysnmpentityengine.pyc”, line 16, in __init__ File “pysnmpprotorfc3412.pyc”, line 16, in __init__ File “pysnmpsmibuilder.pyc”, line 143, in __init__ File “pysnmpsmibuilder.pyc”, line 35, in init File “pysnmpsmibuilder.pyc”, line 80, in _init ImportError: No module named mibs.instances
PySNMP claims itself to be py2exe-friendly. How to make it working?
- You have to list pysnmp MIB directories explicitly at your app’s setup.py so that py2exe would include them into the binary.
from distutils.core import setup
import sys
options = {}
if "py2exe" in sys.argv:
import py2exe
# fix executables
options['console'] = ['myapp.py']
# add files not found my modulefinder
options['options'] = {
'py2exe': {
'includes': [
'pysnmp.smi.mibs.*',
'pysnmp.smi.mibs.instances.*'
]
}
}
setup(**options)