Операторы import
- это практически все зависимости, которые есть. Существуют две соответствующие формы для операторов импорта:
import x, y, z
from x import a, b, c
Вам также понадобятся данные PYTHONPATH
и sites
, которые используются для построения sys.path
. Здесь показано физическое расположение модулей и пакетов.
Это довольно болезненно для обработки, так как вам нужно сделать транзитивное закрытие всех импортов во всех импортируемых вами модулях.
В качестве альтернативного подхода вы можете использовать опцию -v
, чтобы получить полный список импорта и физических файлов. В результате создается журнал, который вы можете редактировать в виде простого списка зависимостей.
Например, когда я делаю
>>> import math
Я вижу это в журнале
dlopen("/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-dynload/math.so", 2);
import math # dynamically loaded from /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-dynload/math.so