Есть ли команда типа ldd для python

Проблема в том, что вы пытаетесь запустить скрипт python, который написали не вы сами, и в нем отсутствует модуль. Затем вы решаете эту проблему и повторите попытку - теперь отсутствует другой модуль. И так далее.

Есть ли что-нибудь, команда или что-то еще, что может пройти через источники Python и проверить наличие всех необходимых модулей - возможно, даже до поиска зависимостей отсутствующих модулей в Интернете (хотя это может быть довольно амбициозным)? Я думаю об этом как о чем-то вроде ldd, но, конечно, это больше похоже на yum или apt-get в своей области.

Обратите внимание, кстати, я говорю не о зависимостях пакетов, как в pip (я думаю, что он называется, но никогда не использовал его), а о логических зависимостях в исходном коде.

В общем случае нет, без запуска кода не обойтись. Операторы импорта - не единственный способ импортировать вещи.

Mad Physicist 13.07.2018 10:54
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
1
2 168
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Есть несколько пакетов, которые анализируют зависимости кода:

https://docs.python.org/2/library/modulefinder.html

Modulefinder похож на то, что вы хотите, и сообщает, какие модули не могут быть загружены. Похоже, что это работает транзитивно из примера, но я не уверен.

https://pypi.org/project/findimports/

Это также анализирует транзитивный импорт, однако я не уверен, что будет на выходе, если модуль отсутствует.

... И еще кое-что вы можете найти с помощью любимой поисковой системы

Что ж, с поисковыми системами все хорошо, но только если вы знаете, какие поисковые запросы могут найти то, что вы ищете. Слова вроде «ldd» и «dependency» вместо этого возвращаются с большим количеством шума.

j4nd3r53n 13.07.2018 13:58

@ j4nd3r53n Это правда, не обижайтесь на это замечание. Я нашел эти ссылки, выполнив поиск по запросу "python analysis import".

kutschkem 13.07.2018 14:40

Я знаю - я не обиделся, просто иногда размышлял о разочаровании, пытаясь найти что-то, для чего очень трудно найти характерный поисковый запрос. Кстати, спасибо за помощь :-)

j4nd3r53n 15.07.2018 10:42

Другие вопросы по теме