在虚拟环境中使用Ansible安装pip包需要使用pip3吗?

5

basically here is my role

---

- 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"
    },

我尝试了可执行文件:pip3,但出现了这个错误

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

额外信息

Ansible 版本

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

针对Ubuntu 16.04和Linux系统的通用技术。


1
你为什么没有给出任何理由就打了这个问题的分数?这是一个愚蠢的问题吗?还是答案非常明显?好吧,聪明的先生,请教育我! - serine
只需更新问题以反映您的评论 @techraf。 - serine
Python 2.7.12 ubuntu@biotraining-bak:~$ which python /usr/bin/python``` 它应该是自带的。 - serine
我很有信心,这些是我安装的唯一的Python包python-pip python3-pip python-dev - serine
@techraf,老实说,如果你不知道如何沟通,请不要这样做。给我发送一个文件中的随机评论链接是没有用的。如果我想阅读Ansible源代码并解决pip问题,我早就这么做了。所以很明显Ansible存在一个错误或问题,这就是你在暗示的。你有解决方案或变通方法吗? - serine
1个回答

0

你应该尝试使用virtualenv_command

- name: 为 Python-{{ version }} 创建 virtualenv
 pip:
   name: mimodd
   virtualenv: "{{ apps_dir }}/mimodd-{{ version }}"
   virtualenv_command: "virtualenv-{{ version }}"

ansible pip


谢谢您的评论,我在发布这个问题后很快就解决了,但是刚刚看了一下解决方案,发现这正是我所做的!我认为值得接受这个问题,谢谢。 - serine

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接