Назад | Перейти на главную страницу

Как установить пакеты Python в папку (Homebrew) Ansible site-packages

Я установил Ansible (v1.4.4) и Python (2.7.6) через Homebrew. Я создаю Ansible playbook для настройки локальной машины разработки на Mac (Mavericks). Когда я перехожу к этапу импорта базы данных MySQL с использованием модуля mysql_db, Ansible жалуется, что «требуется модуль python mysqldb». Итак, я установил его с помощью pip (от Hombrew): pip install MySQL-python. После повторного запуска я получаю то же сообщение об ошибке. Выход 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" "$@"

Установка с помощью pip помещает пакеты в "/usr/local/lib/python2.7/site-packages", но у Ansible есть своя собственная папка пакетов сайтов, поэтому глобальные пакеты не мешают тому, что требует Ansible. Как лучше всего установить MySQL-python в папку пакетов сайтов Ansible?

По умолчанию Ansible будет использовать установку Python по адресу /usr/bin/python если вы не укажете иное. Если вы хотите, чтобы он использовал Homebrew Python, просто добавьте это в свой файл инвентаря:

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

Если вам нужно использовать пакет на управляющей машине OSX, вам нужно будет запустить эти две строки после 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

https://github.com/Homebrew/homebrew/issues/29079

Мне это нужно на моей управляющей машине, чтобы зашифровать запрашиваемые переменные используя Passlib

Ни один из приведенных выше ответов не помог мне; вероятно что-то связано с Йосемити.

У меня сработало следующее:

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

После этого я смог вводить зашифрованные пароли в var_promptс.

В Homebrew ansible используйте собственный питон. Вы можете упаковать библиотеку с помощью команды

/usr/local/Cellar/ansible/2.2.1.0/libexec/bin/pip install MySQL-python