簡體   English   中英

Ansible - 嘗試 python3.5 時找不到 Virtualenv 可執行文件

[英]Ansible - Virtualenv executable not found when trying python3.5

有沒有辦法修復 pip 模塊無法找到正確的 python 版本? 關鍵問題似乎與virtualenv_python

- name: Create venv and install requirements
  pip:
    requirements: /home/admin/dev/python/filepro/requirements.txt
    virtualenv: /home/admin/venvs/filepro
    virtualenv_python: python3.5
  tags:
    - venv

錯誤:

Error message:
FAILED! => {"changed": false, "failed": true, "msg": "Failed to find required executable virtualenv"}

/usr/bin/python3.5是 python 3.5 所在的位置,我使用的是Ansible 2.2.1.0

首先,您需要確保為您打算使用的 Python 版本安裝了 virtualenv。 您可以在運行 pip 模塊之前通過以下方式執行此操作:

- name: Install virtualenv via pip
  pip:
    name: virtualenv
    executable: pip3

如果您不想(或不能)以 root 身份安裝 virualenv,Ansible 將無法獲取 virtualenv 可執行文件。 您可以手動將其添加到 PATH 環境變量中:

- name: Create venv and install requirements
  pip:
    requirements: /home/admin/dev/python/filepro/requirements.txt
    virtualenv: /home/admin/venvs/filepro
    virtualenv_python: python3.5
  tags:
    - venv
  environment:
    PATH: "{{ ansible_env.PATH }}:{{ ansible_user_dir }}/.local/bin"

或者,您可以以 root 用戶身份安裝 vitualenv:

- name: Install virtualenv via pip
  pip:
    name: virtualenv
    executable: pip3
  become: yes
  become_user: root

您可以使用以下內容使用python3-venv模塊創建虛擬python3-venv

首先,你需要在你的目標服務器中有python3-venv

使用$ sudo apt install python3-venv安裝它

然后在您的 ansible 任務中,您可以創建虛擬環境,如下所示

- name: "Setup Virtual Env",
  pip:
     - requirements: path/to/requirements.txt # this is optional
     - virtualenv: path/to/required/virtual_env_destination
     - virtualenv_command: 'python3 -m venv'

也不需要使用virtualenv_python參數

問題是 virtualenv 沒有安裝為 sudo。

如果我錯了,請糾正我,但似乎要讓 pip 模塊與 virtualenv 一起使用,您需要運行sudo pip install virtualenv

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM