2016-09-16 3 views
0

Я пытаюсь установить PyMongo Пакет Python с пипсом. Это требуется Ansible mongodb_user module.ImportError: Нет модуля с именем pymongo

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

После успешной установки инструментов я получаю следующие ошибки анзибля.

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

На сервере, где установлен pymongo я получаю

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

Другая соответствующая информация pip freeze и pip list

$ 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) 

и нагружать пути

$ 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, и я не использую никаких виртуальных envs.

ответ

0

Оказалось, что у меня установлены две версии python (2.6 и 2.7). Даже если по умолчанию 2,7, мой анзибль скрипт установлен pymongo под 2.6 папку /usr/local/lib64/python2.6/site-packages

Я обнаружил, что путем запуска $ python-pip show pymongo и $ python2.6 -c "import pymongo" работает, как ожидалось.

Я изменил свой сценарий Ansible для установки python27-pip вместо python-pip, и он начал работать хорошо.

0

У меня была аналогичная проблема. Я решил это, добавив каталог установки PIP в PYTHON_PATH и изменив разрешение каталога установки PIP.

I wrote the detailed answer here !

Смежные вопросы