Documentación offline Python 3.14

"modulefinder" --- Find modules used by a script

3.14 Ver versión oficial en línea Licencia PSF-2.0Descargado el 2026-08-02

En esta página

"modulefinder" --- Find modules used by a script#

Código fuente: Lib/modulefinder.py

======================================================================

Este módulo provee una clase "ModuleFinder" que puede ser usada para determinar el conjunto de módulos importados en un script. "modulefinder.py" puede también ejecutarse como un script, dando el nombre de un archivo de Python como argumento, tras lo cual se imprimirá un reporte de los módulos importados.

modulefinder.AddPackagePath(pkg_name, path)

Registra que el paquete llamado pkg_name pueda ser encontrado en el path especificado.

modulefinder.ReplacePackage(oldname, newname)

Permite especificar que el módulo llamado oldname es de hecho el paquete llamado newname.

class modulefinder.ModuleFinder(path=None, debug=0, excludes=[], replace_paths=[])

Esta clase provee los métodos "run_script()" y "report()" que determinan el conjunto de módulos importados por un script. path puede ser un listado de directorios a buscar por módulos; si no es especificado, se usará "sys.path". debug define el nivel de depuración; valores más altos hacen que la clase imprima mensajes de depuración acerca de lo que está haciendo. excludes es una lista de nombres de módulos que serán excluidos del análisis. replace_paths es una lista de tuplas "(oldpath, newpath)" que serán remplazadas en las rutas de los módulos.

report()

  Imprime un reporte a la salida estándar que lista los módulos
  importados por el script y sus rutas, así como los módulos que
  faltan o parecieran faltar.

run_script(pathname)

  Analiza los contenidos del archivo *pathname*, que debe contener
  código Python.

modules

  Un diccionario que mapea los nombres de los módulos a los
  módulos. Vea Ejemplo de uso de ModuleFinder.

Ejemplo de uso de "ModuleFinder"#

El script que será analizado más adelante (bacon.py):

import re, itertools

try: import baconhameggs except ImportError: pass

try: import guido.python.ham except ImportError: pass

El script que generará el reporte de bacon.py:

from modulefinder import ModuleFinder

finder = ModuleFinder() finder.run_script('bacon.py')

print('Loaded modules:') for name, mod in finder.modules.items(): print('%s: ' % name, end='') print(','.join(list(mod.globalnames.keys())[:3]))

print('-'*50) print('Modules not imported:') print('\n'.join(finder.badmodules.keys()))

Resultado de ejemplo (puede variar dependiendo de la arquitectura):

Loaded modules: _types: copyreg: _inverted_registry,_slotnames,all re._compiler: isstring,_sre,_optimize_unicode _sre: re._constants: REPEAT_ONE,makedict,AT_END_LINE sys: re: module,finditer,_expand itertools: main: re,itertools,baconhameggs re._parser: _PATTERNENDERS,SRE_FLAG_UNICODE array: types: module,IntType,TypeType


Modules not imported: guido.python.ham baconhameggs