如何使用 anable 为特定的 Python 版本创建 viralenv。在可变标准库中有命令吗?
我想要这样的东西:
- virtualenv: dest=venv python_version:/usr/bin/python3
你可以使用 pip模块和一个特定的 virtualenv二进制:
pip
virtualenv
- pip: virtualenv=/path/to/venv virtualenv_command=/path/to/virtualenv3 ...
在指定 virtualenv_command时,我有时会遇到一些不稳定的行为(例如: 在我的 viralenv 中获得一个 python 2.7可执行文件,尽管我指定用 virtualenv-3.4运行该命令。
virtualenv_command
virtualenv-3.4
如果遇到这个问题,您可以使用 command模块手动创建 viralenv:
command
- name: Manually create the initial virtualenv command: cmd: virtualenv /user/home/venvs/myenv -p python3.4 creates: "/user/home/venvs/myenv"
(注意: 通过指定 creates,该命令将仅在 /user/home/venvs/myenv不存在 viralenv 的情况下运行)。
creates
/user/home/venvs/myenv
然后您可以使用 pip命令正常安装您的需求:
- name: Install requirements pip: requirements=/my_app/requirements.txt virtualenv=/user/home/venvs/myenv
更新
我发现,在上述情况下,指定 virtualenv_python(可在 Ansible2.0 + 中获得)似乎也是可行的。例如:
virtualenv_python
- name: Install requirements pip: requirements: /my_app/requirements.txt virtualenv: /user/home/venvs/myenv virtualenv_python: python3.4
(有了这个,您不应该需要首先手动创建 viralenv)
使用 ansible2.0,您可以使用 virtualenv_python为 Virtual alenv 指定一个 python 版本
例如:
- name: Initiate virtualenv pip: virtualenv="\{\{ virtualenv_dir }}" virtualenv_python=python3.4 requirements=\{\{ app_dir }}/requirements.txt
关于森托斯 -7:
可变版本: 2.9(这个脚本应该适用于可变版本2 +)
完成可视化脚本创建 Python 3.6虚拟环境
- name: Enable EPEL Repository on CentOS 7 yum: name: epel-release state: latest - name: check if virtualenv library already installed or not stat: path: /usr/bin/virtualenv register: pip_virtualenv_installed - name: Download Pip-Installer get_url: url: https://bootstrap.pypa.io/pip/2.7/get-pip.py dest: /tmp/get-pip.py when: pip_virtualenv_installed.stat.exists == False - name: Install pip shell: /usr/bin/python /tmp/get-pip.py when: pip_virtualenv_installed.stat.exists == False - name: Install virtualenv module pip: name: virtualenv when: pip_virtualenv_installed.stat.exists == False - name: Install Python 3.6 yum: name: - python36 - python36-devel - python36-libs - python3-setuptools - gcc - gcc-c++ state: present - name: Create Python3-virtual environment folder file: name: /opt/python3-virtualenv state: directory - name: Initiate virtualenv pip: virtualenv: /opt/python3-virtualenv virtualenv_python: python3.6 requirements: /opt/python3-virtualenv/requirements.txt