operator modules from another __all__ python package

modules - Encuentra qué módulos de Python se están importando



python modules list (4)

¿Cuál es una forma fácil de encontrar todos los módulos de Python de un paquete en particular que se están utilizando en una aplicación?



Podría usar python -v , que emitirá mensajes sobre cada módulo importado:

$ echo ''print "hello world"'' > helo.py $ python -v helo.py # installing zipimport hook import zipimport # builtin # installed zipimport hook # /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site.pyc matches /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site.py import site # precompiled from /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site.pyc # /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/os.pyc matches /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/os.py import os # precompiled from /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/os.pyc import posix # builtin # /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/posixpath.pyc matches /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/posixpath.py import posixpath # precompiled from /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/posixpath.pyc

...y así sucesivamente y así sucesivamente. ¡Por supuesto que luego puede grep los módulos de interés de entre esta gran lista!


Un método realmente simple es eliminar todos los archivos .pyc del paquete o carpeta y luego ejecutar la aplicación. Una vez que haya jugado un poco, haga una lista de directorios y vea qué archivos tienen archivos .pyc ahora. Esos son módulos que fueron importados por la aplicación.

(Nota: el módulo __main__ , el que invoque como el script "principal", nunca se compila, por lo que no debe esperar ver un archivo .pyc a menos que se haya importado algo desde la aplicación. A menudo, esto es un signo de un problema si sucede.)


sys.modules es un diccionario que sys.modules nombres de módulos a módulos. Puede examinar sus claves para ver los módulos importados.