Я установил 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