Trace Python imports

前端 未结 2 1717
小鲜肉
小鲜肉 2020-11-27 19:02

My Python library just changed it\'s main module name from foo.bar to foobar. For backward compat, foo.bar still exists, but importing

相关标签:
2条回答
  • 2020-11-27 19:25

    Start the python interpreter with -v:

    $ python -v -m /usr/lib/python2.6/timeit.py
    # installing zipimport hook
    import zipimport # builtin
    # installed zipimport hook
    # /usr/lib/python2.6/site.pyc matches /usr/lib/python2.6/site.py
    import site # precompiled from /usr/lib/python2.6/site.pyc
    # /usr/lib/python2.6/os.pyc matches /usr/lib/python2.6/os.py
    import os # precompiled from /usr/lib/python2.6/os.pyc
    import errno # builtin
    import posix # builtin
    # /usr/lib/python2.6/posixpath.pyc matches /usr/lib/python2.6/posixpath.py
    import posixpath # precompiled from /usr/lib/python2.6/posixpath.pyc
    # /usr/lib/python2.6/stat.pyc matches /usr/lib/python2.6/stat.py
    import stat # precompiled from /usr/lib/python2.6/stat.pyc
    # /usr/lib/python2.6/genericpath.pyc matches /usr/lib/python2.6/genericpath.py
    import genericpath # precompiled from /usr/lib/python2.6/genericpath.pyc
    # /usr/lib/python2.6/warnings.pyc matches /usr/lib/python2.6/warnings.py
    import warnings # precompiled from /usr/lib/python2.6/warnings.pyc
    # /usr/lib/python2.6/linecache.pyc matches /usr/lib/python2.6/linecache.py
    import linecache # precompiled from /usr/lib/python2.6/linecache.pyc
    # /usr/lib/python2.6/types.pyc matches /usr/lib/python2.6/types.py
    import types # precompiled from /usr/lib/python2.6/types.pyc
    # /usr/lib/python2.6/UserDict.pyc matches /usr/lib/python2.6/UserDict.py
    ...
    

    Then just grep for your old module.

    0 讨论(0)
  • 2020-11-27 19:38

    edit foo.bar module, add following code:

    import pdb
    pdb.set_trace()
    

    when foo.bar be imported, program will stop at pdb.set_trace() in pdb mode, where you can debug your code. For example, you can use "w" command to print the full calling stack.

    0 讨论(0)
提交回复
热议问题