Найти, какие модули python импортируются

Какой простой способ найти все модули python из определенного пакета, который используется в приложении?

4 Solutions collect form web for “Найти, какие модули python импортируются”

sys.modules – это имена модулей сопоставления словаря для модулей. Вы можете просмотреть его ключи, чтобы увидеть импортированные модули.

Вы можете использовать python -v , который будет генерировать сообщения о каждом импортированном модуле:

 $ 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 

…и так далее и тому подобное. Конечно, вы можете позже grep модули из интересного из этого большого списка! -)

Я думаю, что modulefinder – это то, что вы ищете. Вы можете напрямую использовать modulefinder.py , запуская его как скрипт, как описано там, или вы можете импортировать модуль, а затем создать отчет, используя класс modulefinder.ModuleFinder .

Реальный простой способ – удалить все файлы .pyc из пакета или папки, а затем запустить приложение. После того, как вы немного поиграли, сделайте список каталогов и посмотрите, какие файлы имеют .pyc-файлы. Это модули, которые были импортированы приложением.

(Примечание: модуль __main__ , в зависимости от того, который вы вызываете как «основной» сценарий, никогда не компилируется, поэтому вы не должны ожидать, чтобы он видел файл .pyc, если только что-то не импортировало его из приложения. Это часто является признаком проблема, если это произойдет.)

  • Упаковка Python
  • не получая все сообщения с превышением ICMP: почему?
  • Невозможно импортировать мои собственные модули в Python
  • Python: что предпочитает «импорт» - модули или пакеты?
  • Файлы Python - импорт из друг друга
  • Как найти все дочерние модули в Python?
  • Пусть sphinx использует версию из setup.py
  • Что такое * простой * способ структурирования проекта python?
  • Python: импорт подпакета или подмодуля
  • Декомпрессия полезной нагрузки пакета с Python
  • Организация классов Python в модулях и / или пакетах
  • Python - лучший язык программирования в мире.