如何将 Python 包安装到 (Homebrew) Ansible 的 site-packages 文件夹

如何将 Python 包安装到 (Homebrew) Ansible 的 site-packages 文件夹

我已经通过 Homebrew 安装了 Ansible (v1.4.4) 和 Python (2.7.6)。我正在创建一个 Ansible playbook,用于在 Mac (Mavericks) 上设置本地开发机器。当我使用 mysql_db 模块导入 MySQL 数据库的步骤时,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 有自己的 site-packages 文件夹,因此全局软件包不会干扰 Ansible 的要求。将 MySQL-python 安装到 Ansible 的 site-packages 文件夹的最佳方法是什么?

答案1

默认情况下,Ansible 将使用安装在/usr/bin/python除非你另有说明。如果你想让它使用 Homebrew Python,只需将其添加到你的库存文件中:

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

答案2

如果你需要在 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

答案3

以上两个答案都不适用于我;可能与优胜美地有关。

以下对我有用:

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

此后,我可以将加密密码输入到中var_prompt

答案4

在 Homebrew ansible 中使用自己的 python。你可以使用以下命令打包库

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

相关内容