нисходящая модель python3 с ansible с использованием вирусной среды env

#python-3.x #pip #ansible #rasa

#python-3.x #pip #ansible #rasa

Вопрос:

в настоящее время пишу ansible playbook для установки rasa … с использованием виртуальной среды

 python3.7 -m venv ./venv
source ./venv/bin/activate 
....
....
pip3 install -r requirements.txt
python3 -m spacy download en_core_web_md                                        
python -m spacy link en_core_web_md en  
 

некоторая справочная информация о spacy https://spacy.io/models ..

в сборнике я смог установить требования, используя следующий список…playbook работает отлично….

 - name: Download pip installer                                              
  get_url:                                                                  
    url: https://bootstrap.pypa.io/get-pip.py                               
    dest: /tmp/get-pip.py                                                   
                                                                               
- name: Install pip                                                         
  shell: |                                                                  
    /usr/bin/python3 /tmp/get-pip.py                                         
                                                                             
- name: Create app folder                                                   
  file:                                                                     
    name: /opt/app                                                
    state: directory                                                        
    recurse: yes                                                            
                                                                               
- name: Install virtualenv module                                           
  pip:                                                                      
    name: virtualenv                                                        
    state: latest                                                           
                                                                                
- name: Create virtualenv for app                                           
  pip:                                                                      
    requirements: /opt/app/requirements.txt                       
    virtualenv: /opt/app/appenv
 

чего мне не хватает, так это последних 2 частей, выполненных в /opt/app/appenv….

 python3 -m spacy download en_core_web_md                                        
python -m spacy link en_core_web_md en 
 

Ответ №1:

На самом деле вы уже знаете путь к исполняемому файлу python в virtualenv, поскольку это каталог virtualenv bin/python ; вам нужно позаботиться об идемпотентности действия, чтобы spacy не пытался повторно выполнить эти команды при последующих запусках playbook

   - name: download en_core_web_md
    command: /opt/app/appenv/bin/python -m spacy download en_core_web_md                                        
    args:
      creates: /whatever/file/the download command/creates

  - name: link en_core_web_md
    command: /opt/app/appenv/bin/python -m spacy link en_core_web_md en
    args:
      creates: /whatever/file/link/creates
 

Я опустил извлечение этого каталога virtualenv в a vars: , но я бы рекомендовал это, поскольку на него, вероятно, будут ссылаться creates: и в

Комментарии:

1. Не могли бы вы, пожалуйста, объяснить это немного подробнее, поскольку мне также приходится запускать в виртуальной среде команду rasa train …. попробовал, все работает нормально … но как мне теперь запустить команду «rasa train»…. Заранее спасибо..

2. Предполагая, что что-то установило rasa скрипт в этот virtualenv, это будет command: /opt/app/appenv/bin/rasa train