在virtualenv中使用ansible安装pip包需要使用pip3吗?

时间:2017-02-08 04:31:38

标签: pip ansible

基本上这是我的角色

---

- name: pip install mimodd {{ version }}
  pip:
    name: mimodd
    version: "{{ version }}"
    virtualenv: "{{ apps_dir }}/mimodd-{{ version }}"
    virtualenv_python: python3.5
    virtualenv_site_packages: yes

  tags: mimodd

- file:
    dest: "{{ modules_bio }}/mimodd-{{ version }}"
    state: directory
    mode: 0755

  tags: mimodd

- name: mimodd {{ version }} module definition
  template:
    src: sw-module.lua.j2
    dest: "{{ modules_bio }}/mimodd/{{ version }}.lua"
    owner: "{{ main_guy }}" 
    mode: 0644
  with_items:
    - dir: 'mimodd-{{ version }}'
      help_text: 'loads mimodd pipeline'
      append: true 

  tags: mimodd

这是我的错误,显然它正在使用pip2!如何使用pip3?

   fatal: [biotraining-bak]: FAILED! => {
    "changed": false, 
    "cmd": "/usr/local/bin/pip2 install mimodd==0.1.7.3", 
    "failed": true, 
    "invocation": {
        "module_args": {
            "chdir": null, 
            "editable": true, 
            "executable": null, 
            "extra_args": null, 
            "name": [
                "mimodd"
            ], 
            "requirements": null, 
            "state": "present", 
            "umask": null, 
            "use_mirrors": true, 
            "version": "0.1.7.3", 
            "virtualenv": "/software/apps/mimodd-0.1.7.3", 
            "virtualenv_command": "virtualenv", 
            "virtualenv_python": "python3.5", 
            "virtualenv_site_packages": true
        }, 
        "module_name": "pip"
    },

我尝试了executable: pip3,但收到此错误

"msg": "parameters are mutually exclusive: ['executable', 'virtualenv']"

额外信息

ansible version

[biostation]~$ ansible --version
ansible 2.2.0.0
  config file = 
  configured module search path = Default w/o overrides

一般针对ubuntu 16.04和linux

1 个答案:

答案 0 :(得分:0)

您应该尝试使用 virtualenv_command

- name: Create virtualenv for Python-{{ version }}
 pip:
   name: mimodd
   virtualenv: "{{ apps_dir }}/mimodd-{{ version }}"
   virtualenv_command: "virtualenv-{{ version }}"

ansible pip