Поскольку вы упомянули, что вам нравится следовать лучшим практикам, я предполагаю, что вы тоже используете virtualenv, верно? Предполагая, что это так, и поскольку вы уже закрепляете свои пакеты, существует инструмент под названием pip-tools, которые вы можете запускать на виртуальной среде для проверки обновлений.
Есть и обратная сторона, и почему я упомянул об использовании virtualenv.
[инструмент] проверяет PyPI и сообщает о доступных обновлениях. Он использует список установленных пакетов для проверки обновлений, не использует файл requirements.txt.
Если вы запустите его в своей виртуальной среде, вы можете легко увидеть, какие пакеты имеют обновления, доступные для вашей текущей активной среды. Однако, если вы не используете virtualenv, вероятно, не лучше запускать его против системы, поскольку другие ваши проекты могут зависеть от разных версий (или могут не работать с обновленной версией, даже если все они в настоящее время работают).
Судя по предоставленной документации, использование простое. pip-review
показывает, какие обновления доступны, но не устанавливает их.
$ pip-review
requests==0.13.4 available (you have 0.13.2)
redis==2.4.13 available (you have 2.4.9)
rq==0.3.2 available (you have 0.3.0)
Если вы хотите установить также автоматически, этот инструмент тоже справится: $ pip-review --auto
. Существует также переключатель --interactive
, который можно использовать для выборочного обновления пакетов.
Как только все это будет сделано, pip-tools
предоставит возможность обновить ваш файл requirements.txt с помощью новейших версий: pip-dump
. Опять же, это работает с текущей активной средой, поэтому рекомендуется использовать его в виртуальной среде.
Установку проекта можно осуществить через pip install pip-tools
.
Примечание автора: я использовал это для небольших проектов Django и был очень доволен. Одно замечание: если вы установите pip-tools
в свою виртуальную среду, то при запуске pip-dump
вы обнаружите, что он добавляется в ваш файл requirements.txt. Поскольку мои проекты небольшие, я всегда удалял эту строку вручную. Если у вас есть какой-либо скрипт сборки, вы можете автоматически удалить его перед развертыванием.
person
Andy♦
schedule
08.04.2014