如何在虚拟环境中使用Ansible运行python setup.py develop命令
我想在虚拟环境中使用 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"