А знаете ли вы, почему

А знаете ли вы, почему нужно замораживать зависимости в проекте на Python?

Современная разработка на Python просто немыслима без virtuaenv и pip, и одним из важнейших факторов при использовании этих инструментов является воспроизводимость виртуального окружения.

Традиционно вместе с проектом, который вам предстоит развертывать, поставляется файл requirements.txt со списком модулей, необходимых для успешного запуска.

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

Решением проблемы является использование команды pip freeze. Она выведет список модулей текущего виртуального окружения с указанием версий пакетов. Этот список и следует поместить в requirements.txt. Возможно, вам понадобится дополнительно указать опцию -l, которая исключит из списка пакеты установленные глобально в системе.

Если ваш проект еще не использует virtualenv (а зря), то можно найти список используемых модулей с помощью modulefinder — вот небольшая статья о нем: http://vk.cc/3QjP5F.

Если вам интересно узнать подробнее об использовании virtualenv и pip, напишите об этом в комментариях и мы расскажем о них в следующих сериях рубрики.

#python@tproger
#hint@tproger