Найти в Дзене
Аня Программист

Python: получаем список используемых библиотек

Хей, как вы? Представьте, у Вас большой Python проект, и его нужно передать коллеге для тестов или доработки. И вот вы передаете код, коллега запускает его, после чего видит ошибку: ModuleNotFoundError: No module named 'numpy' Коллега полон терпения: он устанавливает недостающую библиотеку и вновь запускает код: ModuleNotFoundError: No module named 'PySide2' Хм, Ваш коллега спокойно устанавливает вторую библиотеку, но затем ситуация повторяется десять раз. Итог: коллега опечален ведь потрачена уйма времени, а за кофем он не успел сходить :( Но как передать другому знание об используемых библиотеках в проекте? - Собрать их в один файл.
Собирать по разным файлам проекта долго и неинтересно. Есть ли способ быстрее? - Да, давайте изучать Напомню, я рассказываю об инструментах эффективного программиста. Для начала давайте вспомним, что грамотный программист будет выделять под каждый проект свой Python, то есть использовать виртуальное окружение, например, venv. Это первый шаг. Кстат

Хей, как вы?

Представьте, у Вас большой Python проект, и его нужно передать коллеге для тестов или доработки. И вот вы передаете код, коллега запускает его, после чего видит ошибку:

ModuleNotFoundError: No module named 'numpy'

Коллега полон терпения: он устанавливает недостающую библиотеку и вновь запускает код:

ModuleNotFoundError: No module named 'PySide2'

Хм, Ваш коллега спокойно устанавливает вторую библиотеку, но затем ситуация повторяется десять раз. Итог: коллега опечален ведь потрачена уйма времени, а за кофем он не успел сходить :(

-2

Но как передать другому знание об используемых библиотеках в проекте? - Собрать их в один файл.
Собирать по разным файлам проекта долго и неинтересно. Есть ли способ быстрее? - Да, давайте изучать

Напомню, я рассказываю об инструментах эффективного программиста.

Для начала давайте вспомним, что грамотный программист будет выделять под каждый проект свой Python, то есть использовать виртуальное окружение, например, venv. Это первый шаг. Кстати, у меня есть статья по поводу использования venv.

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

Запускаем виртуальное окружение и всего лишь пишем в командной строке:

pip freeze < requirements.txt

Что есть что:
Команда freeze "замораживает" текущую версию Python - печатает все внешние зависимости в файл requirements.txt. И да, Вы можете назвать файл как угодно, например bus.txt или даже автобус.txt, но общепринято название requirements.txt. Советую придерживаться обозначения для большего порядка.

Кстати, командную строку можно открыть из рабочей папки:
Shift + правая кнопка мыши в свободной области директории -> Open Command window here / PowerShell window here.

Быстрый способ открыть командную строку в рабочей директории
Быстрый способ открыть командную строку в рабочей директории

Если вы решите тут же посмотреть зависимости в командной строке или терминале, то для этого есть команда:

cat requirements.txt
Пример использования pip freeze и cat
Пример использования pip freeze и cat

Напомню, получив такой файл, не обязательно устанавливать каждую зависимость вручную. Согласитесь, времени уйдёт уйма на последовательный ввод зависимостей на загрузку. Воспользуйтесь возможностью подгружать файл в pip и налейте себе кружечку ароматного кофе :)

pip install -r requirements.txt

Вот и все. Все просто и быстро :)

Сохраняй статью, пользуйся простыми ходами для повышения эффективности.

Хорошего Вам настроения!