2014-03-07 2 views
2

나는 사용자 정의 모듈을 안전하게 작성하려고합니다. 2.6.6
MySQL을 - 파이썬 버전 : 1.2.3MySQLdb를 비활성 모듈에서 가져올 수 없습니다.

파이썬 코드 : import MySQLdb를 사용하는 동안은 나에게
파이썬 버전을 사용하여 오류

failed: [127.0.0.1] => {"failed": true, "parsed": false} 
invalid output was: Traceback (most recent call last): 
    File "/root/.ansible/tmp/ansible-1394199347.29-33439012674717/inventory", line 11, in <module> 
    import MySQLdb 
ImportError: No module named MySQLdb 

을주고있다 -

#!/usr/bin/python 

import datetime 
import sys 
import json 
import os 
import shlex 
import MySQLdb 

db = MySQLdb.connect("localhost","user","pwd","db_name") 
cursor = db.cursor() 
cursor.execute("SELECT * FROM hosts") 
data = cursor.fetchone() 
print data 
db.close() 

나는 안전한 모듈을 실행할 수있는 플레이 북을 작성했습니다. -

inventory.yaml : -

--- 
- hosts: webservers 
    user: root 
    sudo: True 
    vars: 
    act: list 
    tasks: 
    - name: Run module inventory 
    action: inventory act="{{act}}" prod="roop" 

나는 아래 사용하여이 작전을 실행 해요 명령 : -

ansible-playbook -v playboook/path/inventory.yaml 
파이썬 명령 줄 (< < <)에서 일하고 있지만 작동하지

같은 코드 신뢰할 수있는 모듈.

내 책임감있는 모듈에서 다른 코드가 작동합니다. 해당 설정이 필요합니까?

+0

스크립트를 실행하는 데 사용하는 사용자에게 MySQLdb 모듈을 실행할 수있는 충분한 권한이 있습니까? – Vor

+0

이 스크립트를 루트 사용자로 실행 중입니다. – Roopendra

+0

ANSIBLE_KEEP_REMOTE_FILES = 1로 실행하고 /root/.ansible/tmp/ansible-xxx/inventory 코드를 표시 할 수 있습니까? virtualenv를 사용하고 있습니까? – leucos

답변

6

MySQLdb 모듈은 Python 환경에 없습니다. 스크립트에서 다음을 사용하여 파이썬을 실행하고 있습니다 : #!/usr/bin/python. 명령 행 (>>>)에서 실행중인 Python이 동일한 Python이 아닐 가능성이 큽니다. 다음을 실행 해보십시오 :

which python 

어떤 Python을 실행 중인지 알아보십시오.

sudo apt-get install python-mysqldb 

나에 CentOS에

, 레드햇 : 그것을 설치하는 또 다른 파이썬의 경우에 따라서, 당신은 우분투에서 실행할 수
sudo yum install MySQL-python 

는 도움이되기를 바랍니다.

+0

답장을 보내 주셔서 감사합니다. 이미 MySQL-python을 설치했습니다. 네, 다른 파이썬을 사용하고 있는지 확인하겠습니다. – Roopendra

+0

둘 다 동일한 python/usr/bin/python을 사용합니다 – Roopendra

+0

어떻게 Ansible을 설치 했습니까? 핍을 사용하니? 파이썬 명령 줄에'>>> import ansible'을 입력 할 수 있습니까? 어떤 오류가 있습니까? – Rico

관련 문제