Como instalar pacotes Python na pasta (Homebrew) do site-packages da Ansible

5

Instalei o Ansible (v1.4.4) e o Python (2.7.6) via Homebrew. Estou criando uma cartilha Ansible para configurar uma máquina de desenvolvimento local no Mac (Mavericks). Quando eu chego na etapa para importar um banco de dados MySQL usando o módulo mysql_db, o Ansible reclama "o módulo mysqldb do python é necessário". Então eu instalei com pip (da Hombrew): pip install MySQL-python . Depois de voltar a correr, recebo a mesma mensagem de erro. A saída de cat /usr/local/bin/ansible-playbook é

#!/bin/bash
PYTHONPATH="/usr/local/Cellar/ansible/1.4.4/libexec/lib/python2.7/site-packages" exec "/usr/local/Cellar/ansible/1.4.4/libexec/bin/ansible-playbook" "$@"

A instalação com o pip coloca os pacotes em " /usr/local/lib/python2.7/site-packages ", mas o Ansible tem sua própria pasta de pacotes de sites para que os pacotes globais não interfiram no que o Ansible requer. Qual é a melhor maneira de instalar o MySQL-python na pasta de pacotes de sites da Ansible?

    
por George IV 17.01.2014 / 03:06

4 respostas

5

Por padrão, o Ansible usará a instalação do Python em /usr/bin/python , a menos que você diga o contrário. Se você quiser usar o Homebrew Python, basta adicionar isso ao seu arquivo de inventário:

[local]
localhost ansible_python_interpreter=/usr/local/bin/python

    
por 18.01.2014 / 00:03
3

Se você precisar usar um pacote na máquina de controle OSX, precisará executar essas duas linhas após brew install ansible

mkdir -p ~/Library/Python/2.7/lib/python/site-packages
echo '/usr/local/lib/python2.7/site-packages' > ~/Library/Python/2.7/lib/python/site-packages/homebrew.pth

link

Eu precisava disso na minha máquina de controle para criptografar variáveis solicitadas usando o Passlib

    
por 24.06.2014 / 17:15
1

Nenhuma das respostas acima funcionou para mim; provavelmente algo a ver com Yosemite.

O seguinte funcionou para mim:

PYTHONPATH=/usr/local/Cellar/ansible/1.8.2/libexec/lib/python2.7/site-packages/ \
  easy_install -ad ${PYTHONPATH} passlib

Depois disso, consegui inserir senhas criptografadas em var_prompt .

    
por 24.01.2015 / 13:16
0

No Homebrew ansible use o próprio python. Você pode empacotar a biblioteca com o comando

/usr/local/Cellar/ansible/2.2.1.0/libexec/bin/pip install MySQL-python
    
por 20.02.2017 / 13:28