2015-09-30 2 views
0

Я хотел бы знать, внедрил ли какой-либо из вас функцию autoupdate для приложения python. Моя идея - загрузить первые 100-200 байт (используя запросы?) Из URL-адреса github, связав тег версии. Ex.Python auto updater от github

#!/usr/bin/env python 
####################### 
__author__ = '<a href="mailto:[email protected]">xxx</a>' 
__program__ = 'theprogram' 
__package__ = '' 
__description__ = '''This program does things''' 
__version__ = '0.0.0' 
... 

Таким образом, если версия тега больше, чем в локальном модуле, то обновление будет загрузить весь файл и заменить его, а затем (или путь) запустить его.

Каков наилучший способ для этого?

Спасибо!

+0

Да, вы могли бы использовать запросы для получения номера версии, а затем сравнить его с номером в этом файле и затем выполнить некоторые действия. Вы можете запустить его в cron, чтобы автоматически выполнять его с интервалом. – Peter

+0

связанный: [Как удаленно обновлять приложения Python] (http://stackoverflow.com/q/6932389/4279) и ['esky'] (https://github.com/cloudmatrix/esky) – jfs

ответ

1

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

pip install --upgrade yourpackage 

или

pip install --upgrade git+https://github.com/youracc/yourepo.git 

Кроме того, как отметил @riotburn, вы должны использовать virtualenv, чтобы изолировать окружающую среду и, а также может откатиться к предыдущей, если это необходимо. В этом последнем случае вы можете найти это virtualenv wrapper очень полезно.

1

Для управления зависимостями, используемыми в вашем пакете, необходимо использовать virtualenv или conda. Оба позволяют создавать изолированные среды для установки определенных версий пакетов, а также создавать среды из предопределенного списка зависимостей. Conda также имеет преимущество в том, чтобы быть менеджером пакетов, как pip. Если вы не укажете версии в этом файле требований, он установит последнюю версию. Затем вы можете просто написать сценарий bash, чтобы автоматизировать пару команд, необходимых для этого, для вашего случая использования.

Попробуйте прочитать на питон среду:

http://conda.pydata.org/docs/using/envs.html
https://virtualenv.pypa.io/en/latest/

Смежные вопросы