在开发过程中有Ansible pip update python包

lum*_*ked 7 python pip ansible

我一直在写一些Ansible游戏来设置python virtualenv,并且在开发期间更新python包并重新启动服务器.我有问题虽然获得pip更新包.我真的不在乎这是怎么做的,但我更喜欢在开发过程中只是在virtualenv中添加python路径的路径然后只是重新启动服务器,但我还没有想出如何在Ansible中做到这一点.

所以我的问题是我如何设置一个本地git仓库,可以安装到virtualenv的site-packages中,也可以使用正确的virtualenv设置Ansible到sys.path.insert的位置.

目前我正在尝试:

sudo pip install ~/workspace/python-repo
Run Code Online (Sandbox Code Playgroud)

在我安装软件包之前,我将一个我从Authenticator重命名的类重命名为像Authen这样的完全错误的类.该课程在全新安装期间显示Authen.然后我将类名更改回正确的名称(Authenticator),碰撞版本并运行

sudo pip install ~/workspace/python-repo --upgrade
Run Code Online (Sandbox Code Playgroud)

但在检查site-packages中的实际文件后,它仍显示Authen名称而不是更新的文件.

我怎样才能在开发过程中使用本地仓库并在我的环境中获取即时更新的文件?以及通过Ansible使其成为可重复的过程.

这是我在Ansible尝试做的事情.我的第一个游戏是设置我只想运行一次的环境.

- name: Install python-repo
local_action: pip name=${python_root}
                  virtualenv=${working_dir}/development
Run Code Online (Sandbox Code Playgroud)

$ {python_root}只是我的python项目的位置,当然工作目录是新的virtualenv设置.

然后不知怎的,我想要一个开发游戏来更新virtualenv中的python repo.这是我到目前为止所做的,但这也不起作用.

- 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} 
Run Code Online (Sandbox Code Playgroud)

lum*_*ked 12

我将把这个作为正确的答案发布给其他人,以便对此进行参考.

目前我有一个Ansible游戏,它通过安装本地python包然后创建virtualenv并将所有内容安装到开发中来设置环境.首先在设置virtualenv并将本地git repo安装到环境中我在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}' 
Run Code Online (Sandbox Code Playgroud)

现在我开始开发,当我准备好测试并运行它时,我使用不同的Ansible play来部署本地更改.我使用这些任务.

- 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}
Run Code Online (Sandbox Code Playgroud)

这会立即接受我的python更新并重新启动我的服务器.我花了很长时间来围绕这个问题来自php开发环境并且只需要按F5来接受更改.我想要一个好的python开发环境,我认为这是一个可接受的过程.