web-dev-qa-db-ja.com

Pythonパッケージを(Homebrew)Ansibleのsite-packagesフォルダーにインストールする方法

Ansible(v1.4.4)とPython(2.7.6)をHomebrew経由でインストールしました。Mac(Mavericks)にローカル開発マシンをセットアップするためのAnsibleプレイブックを作成しています。 mysql_dbモジュールを使用してMySQLデータベースをインポートするステップに到達すると、Ansibleは「python mysqldbモジュールが必要です」と不平を言います。そのため、pim(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のsite-packagesフォルダーにインストールする最良の方法は何ですか?

5
George IV

デフォルトでは、AnsibleはPython install at /usr/bin/python 特に明記しない限り。 Homebrew Pythonを使用する場合は、これをインベントリファイルに追加します。

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

5
Joshua Conner

上記の答えはどちらもうまくいきませんでした。おそらくヨセミテと関係があります。

以下は私のために働きました:

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

この後、var_Promptに暗号化されたパスワードを入力することができました。

1
boneskull

Homebrew ansibleでは、独自のpythonを使用します。次のコマンドでライブラリをパッケージ化できます

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