2016-09-16 8 views
0

私はPyMongo pipでpythonパッケージをインストールしようとしています。 Ansible mongodb_user moduleが必要です。ImportError:いいえpymongoというモジュールはありません

私はAnsibleスクリプト以下でピップとpymongoをインストールしています:

- hosts: tag_Name_Development 
    become: true 
    remote_user: user 
    tasks: 
    - name: install python tools 
     yum: name={{ item }} state=latest 
     with_items: 
     - gcc 
     - python-devel 
     - python-setuptools 
     - python-pip 

    - name: install pymongo 
     pip: name=pymongo state=latest 

    - name: add admin user to mongo 
     mongodb_user: 
     login_port: 27017 
     database: admin 
     name: admin 
     password: "{{ mongodb.admin_pass }}" 
     roles: userAdminAnyDatabase 
     state: present 

私はAnsibleエラーを以下の取得ツールのインストールが正常に終了します。 pymongoがインストールされているサーバー上で

FAILED! => {"changed": false, "failed": true, "msg": "the python pymongo module is required"}

は私が

$ python -c "import pymongo" 
Traceback (most recent call last): 
    File "<string>", line 1, in <module> 
ImportError: No module named pymongo 

その他の関連情報pip freeze

$ python-pip freeze 
backports.ssl-match-hostname==3.4.0.2 
ordereddict==1.2 
pymongo==3.3.0 

$ python-pip list 
backports.ssl-match-hostname (3.4.0.2) 
ordereddict (1.2) 
pip (6.1.1) 
pymongo (3.3.0) 
setuptools (12.2) 

pip listされ、ロードパス

$ python 
Python 2.7.10 (default, Jul 20 2016, 20:53:27) 
[GCC 4.8.3 20140911 (Red Hat 4.8.3-9)] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import sys 
>>> sys.path 
['', '/usr/lib64/python27.zip', '/usr/lib64/python2.7', '/usr/lib64/python2.7/plat-linux2', '/usr/lib64/python2.7/lib-tk', '/usr/lib64/python2.7/lib-old', '/usr/lib64/python2.7/lib-dynload', '/usr/local/lib64/python2.7/site-packages', '/usr/local/lib/python2.7/site-packages', '/usr/lib64/python2.7/site-packages', '/usr/lib/python2.7/site-packages', '/usr/lib64/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages'] 
を取得します

この問題に関連する他の多くの質問がありますが、それらのどれも助けていません。 bsonがインストールされておらず、仮想環境を使用していません。

答えて

0

2つのバージョンのPythonがインストールされていることが判明しました(2.6と2.7)。デフォルトは2.7ですが、私のAnsibleスクリプトは2.6フォルダ/usr/local/lib64/python2.6/site-packages

pymongoをインストールし、私は予想通り$ python-pip show pymongo$ python2.6 -c "import pymongo"作品を実行しているのが分かりました。

私はpython-pipの代わりにpython27-pipをインストールするためにAnsibleスクリプトを変更しました。うまく動作するようになりました。

0

私にも同様の問題がありました。 PIPインストールディレクトリをPYTHON_PATHに追加し、PIPインストールディレクトリのアクセス権を変更して解決しました。

I wrote the detailed answer here !

関連する問題