summaryrefslogtreecommitdiff
path: root/docs/source/faq/py2exe-throws-error.rst
blob: 7f65620d49f4ab7f6d1b70850ae4a6edf10f0921 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45

My py2exe app can't find MIBs
-----------------------------

Q. I packed my pysnmp-based application with py2exe. When I run my app,
   it throws a traceback like this:

.. code-block:: bash

File "pysnmp\entity\rfc3413\oneliner\cmdgen.pyc", line 116, in __init__
File "pysnmp\entity\engine.pyc", line 16, in __init__
File "pysnmp\proto\rfc3412.pyc", line 16, in __init__
File "pysnmp\smi\builder.pyc", line 143, in __init__
File "pysnmp\smi\builder.pyc", line 35, in init
File "pysnmp\smi\builder.pyc", line 80, in _init
ImportError: No module named mibs.instances

   PySNMP claims itself to be py2exe-friendly. How to make it working?

A. You have to list pysnmp MIB directories explicitly at your app's 
   setup.py so that py2exe would include them into the binary.

.. code-block:: python

    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)