如何在虚拟环境中使用Ansible运行python setup.py develop命令

9 投票
3 回答
9880 浏览
提问于 2025-04-18 11:18

我想在虚拟环境中使用 ansible 执行 python setup.py develop 这个命令。该怎么做呢?

可能可以像这样做:

- name: egg
  shell: "python setup.py develop"

但是我需要在虚拟环境里面执行这个命令。我该怎么做呢?

3 个回答

2

你也可以试着把多个命令连在一起使用。

- name: chained shell command
  shell: "source /path/to/env/bin/activate; python setup.py develop"
6

我通常使用 pip -e 的方法,通过 pip 命令(这可以确保有一个 virtualenv 环境),并且添加 -e 参数和 extra_args。比如:

    - name: install MYPACKAGE in VIRTUALENV    
      pip: name='PATH TO MYPACKAGE'
           extra_args='-e'   # this creates a link rather then copying the files
           virtualenv='PATH OF YOUR VIRTUALENV'  # will be created if does not exist

你也可以选择指定 virtualenv 脚本的执行方式,比如如果你需要用 python3,可以加上:

           virtualenv_command='python3 /PATH_TO_VENV/virtualenv.py'

更新一下,从 ansible.builtin 2.0 开始,现在有一个可选的 editable 参数:

    - name: install MYPACKAGE in VIRTUALENV    
      pip:
        name: 'PATH TO MYPACKAGE'
        editable: true
        virtualenv: 'PATH TO YOUR VIRTUALENV'  # will be created if does not exist
9

一种方法是从虚拟环境的bin目录中调用python。

- name: egg
  shell: "/path/to/env/bin/python setup.py develop"

撰写回答