Наличие пакета Ansible pip для обновления Python во время разработки

Я писал несколько игр Ansible для настройки python virtualenv, а также во время разработки для обновления пакета python и перезапуска сервера. У меня проблемы с получением pip для обновления пакета. Мне все равно, как это делается, но я бы предпочел во время разработки просто добавить путь к пути python в virtualenv, а затем просто перезапустить сервер, но я пока не понял, как это сделать в Ansible.

Итак, мой вопрос заключается в том, как настроить локальное репозиторий git, который либо устанавливается в пакеты сайта virtualenv, либо настраивает Ansible для sys.path.insert местоположение репо, используя правильный virtualenv.

В настоящее время я пытался сделать:

sudo pip install ~/workspace/python-repo

Прежде чем установить пакет, я переименовал класс, который у меня есть, из Authenticator во что-то совершенно неправильное, например Authen. Класс показывает Authen во время новой установки. Затем я меняю имя класса обратно на правильное имя (Authenticator), поднимаю версию и запускаю

sudo pip install ~/workspace/python-repo --upgrade

но после проверки фактического файла в пакетах сайтов он по-прежнему показывает имя Authen, а не обновленный файл.

Как я могу сделать так, чтобы во время разработки я использовал локальный репозиторий и мгновенно получал обновленные файлы в своей среде? А также сделать этот процесс повторяемым через Ansible.

Вот что я пытаюсь сделать в Ansible. Моя первая игра - настройка среды, которую я хочу запустить только 1 раз.

- name: Install python-repo
local_action: pip name=${python_root}
                  virtualenv=${working_dir}/development

${python_root} — это только расположение моего проекта Python, и, конечно же, рабочий каталог — это новая установка virtualenv.

Затем каким-то образом я хочу, чтобы игра для разработки обновляла репозиторий python в virtualenv. Это то, что у меня есть до сих пор, но это тоже не работает.

- name: Update python-repo
local_action: pip  name=${python_root}
                   virtualenv=${working_dir}/development
                   state=latest

- name: Restart services.
  local_action: service name=${item} state=restarted
  with_items: ${services} 

person lumberjacked    schedule 12.09.2013    source источник


Ответы (1)


Я собираюсь опубликовать это как правильный ответ для всех остальных, чтобы иметь ссылку на это.

В настоящее время у меня есть игра Ansible, которая настраивает среду, устанавливая локальные пакеты Python, а затем создавая виртуальную среду и устанавливая все в нее для разработки. Сначала при настройке virtualenv и установке вашего локального репозитория git в среду я использую эти задачи в Ansible.

- name: Source virtualenvwrapper.
  local_action: shell /usr/local/bin/virtualenvwrapper.sh 
                    executable=/bin/bash

- name: Set Enviroment to working directory.
  local_action: shell export WORKON_HOME=${working_dir}

- name: Set pip to use working virtual enviroment.
  local_action: shell export PIP_VIRTUALENV_BASE=$WORKON_HOME

- name: Create new virtualenv in development.
  local_action: pip requirements=${virtual_requirements} 
                  virtualenv=${working_dir}/development

- name: Install python-repo as editable 
  local_action: pip name=${python_root}
                  virtualenv=${working_dir}/development
                  extra_args='-e ${python_root}' 

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

- name: Update python-repo
  local_action: pip name=${python_root}
                  virtualenv=${working_dir}/development
                  extra_args='--upgrade'

- name: Restart services.
  local_action: service name=${item} state=restarted
  with_items: ${services}

Это немедленно принимает мои обновления Python и перезапускает мой сервер. Я долго ломал голову над этим из среды разработки php, и мне нужно было только нажать F5, чтобы принять изменения. Мне нужна была хорошая среда разработки Python, и я думаю, что это приемлемый процесс.

person lumberjacked    schedule 12.09.2013