Как определить импортированные пакеты в коде Python - PullRequest
0 голосов
/ 12 марта 2019

часто случается, что я получаю отдельные файлы Python или целые проекты, где мне нужно определить, какие модули импортированы - в основном для очистки лицензии.

Как я могу сделать это настолько полно, насколько это возможно? Мне известен инструмент pipreqs, но он почему-то не перечисляет все модули в итоговом отчете, хотя, кажется, идентифицирует все из них -> в соответствии с журналами отладки.

Я в порядке, потратив время на разработку инструмента, поэтому стратегия, как это сделать, была бы великолепна.

Спасибо

1 Ответ

0 голосов
/ 13 марта 2019

Вот одно решение, если вас просто интересуют лицензии ваших зависимостей:

Если вы получаете доступ к проекту, я считаю, что должно быть что-то вроде requirements.txt, Pipfile , pyproject.toml (Poetry) или аналогичный, который содержит все необходимые пакеты.Или у вас должен быть доступ к работающей среде, в которой установлены все пакеты.

При таком предположении вы можете использовать pip-licenses для идентификации лицензий всех установленных зависимости.Использование довольно просто:

$ pip install pip-licenses
$ pip-licenses --with-urls
Name    Version  License  URL
Django  2.0.2    BSD      https://www.djangoproject.com/
pytz    2017.3   MIT      http://pythonhosted.org/pytz

У меня часто возникала проблема, что лицензия не была выставлена ​​в файле setup.py.Поэтому мне пришлось посетить саму страницу проекта, чтобы получить лицензию.

...