免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 38816 | 回复: 13
打印 上一主题 下一主题

ImportError: No module named simplejson (已解决) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-05-02 17:31 |只看该作者 |倒序浏览
本帖最后由 gron 于 2012-05-07 17:20 编辑

ansible 安装

一、环境:
系统:centos 5.4_64 bit

系统集成:python2.4

python  安装要求:

•python26
•python26-paramiko
•python26-PyYAML
•python26-python-jinja2
•python26-python-simplejson
•python26-virtualenv

二、安装

1、安装2.6版本的python

yum  -y install python26 python26-PyYAML python26-paramiko python26-jinja2 python26-simplejson python26-virtualenv

设置默认python:

mv /usr/bin/python /usr/bin/python_2.4.bak && ln -s /usr/bin/python2.6 /usr/bin/python

2、安装 ansible
wget http://cloud.github.com/download ... nsible-0.3.1.tar.gz

tar -zxf ansible-0.3.1.tar.gz
cd ansible-0.3.1

python setup.py install

cp  -r libray /usr/share/ansible

三、配置:

1、设置 ansible /etc/ansible/hosts

[localhost]
127.0.0.1
[test]
192.168.1.61

2、创建ssh 无密码认证:

本地:ssh-keygen 一路回车后执行:
ssh-copy-id -i ~/.ssh/id_rsa.pub root@127.0.0.1

运程:

ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.61

四、问题:
1、测试本地 ansible

# ansible localhost -m ping
2.6.5 (r265:79063, Feb 28 2011, 21:55:45)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-50)]
127.0.0.1 | success >> {
    "ping": "pong"
}

2、测试远程:

# ansible test  -m ping   
2.6.5 (r265:79063, Feb 28 2011, 21:55:45)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-50)]
192.168.1.61 | FAILED >> {
    "failed": true,
    "msg": "",
    "parsed": false
}

stderr: [192.168.1.61] => Traceback (most recent call last):

  File "/var/tmp/ansible.IO6648/ping", line 23, in ?

    import simplejson as json

ImportError: No module named simplejson

哪位知道什么问题?


解决办法:

将远程服务器的python 升级到2.6 并增加simplejson 插件!

在这感谢大家线上线下的帮助!谢谢你们!



论坛徽章:
0
2 [报告]
发表于 2012-05-02 17:36 |只看该作者

论坛徽章:
0
3 [报告]
发表于 2012-05-02 17:39 |只看该作者
simplejson在自带的手册中没看到啊,大概需要你去下载来安装吧
http://pypi.python.org/pypi/simplejson/2.5.0

论坛徽章:
0
4 [报告]
发表于 2012-05-02 17:47 |只看该作者
本帖最后由 gron 于 2012-05-02 17:49 编辑
anonymous0502 发表于 2012-05-02 17:39
simplejson在自带的手册中没看到啊,大概需要你去下载来安装吧
http://pypi.python.org/pypi/simplejson/2 ...




我手动安装了2.5 的

>>> import simplejson
>>> print simplejson
<module 'simplejson' from 'simplejson/__init__.py'>

论坛徽章:
0
5 [报告]
发表于 2012-05-02 20:13 |只看该作者
File "/var/tmp/ansible.Z13842/command", line 24, in ?
这个文件看看

你装有多个版本吗?

论坛徽章:
0
6 [报告]
发表于 2012-05-03 14:07 |只看该作者
anonymous0502 发表于 2012-05-02 20:13
File "/var/tmp/ansible.Z13842/command", line 24, in ?
这个文件看看


"/var/tmp/ansible.Z13842/command"  这是ansible 软件应用中生成的临时文件,运行过后就删除该文件了。所以看不见文件内容。

系统自带python 2.4 后编译安装python2.7的。在ansible 中要引用simplejson ,也单独安装过simplejson 了.

论坛徽章:
0
7 [报告]
发表于 2012-05-03 14:23 |只看该作者
本帖最后由 anonymous0502 于 2012-05-03 14:23 编辑

那可能是用来运行你的应用的python版本不对吧,打印一下版本号看看对不对。
照你要运行的脚本的格式开头几行以#开头的行复制到你的测试py文件中,加上两句
import sys
print sys.version
看看是不是所使用的python解释器不对

论坛徽章:
0
8 [报告]
发表于 2012-05-03 14:41 |只看该作者
anonymous0502 发表于 2012-05-03 14:23
那可能是用来运行你的应用的python版本不对吧,打印一下版本号看看对不对。
照你要运行的脚本的格式开头几 ...


引用版本上我指定了python2.7。具体请看:

[root@nagios ~]# ansible test -m ping     
2.7.2 (default, May  3 2012, 11:30:5
[GCC 4.1.2 20080704 (Red Hat 4.1.2-51)]
['/usr/local/bin', '/usr/local/lib/python2.7/site-packages/pip-1.0.2-py2.7.egg', '/usr/local/lib/python2.7/site-packages/ez_setup-0.9-py2.7.egg', '/usr/local/lib/python2.7/site-packages/distribute-0.6.14-py2.7.egg', '/usr/local/lib/python2.7/site-packages/AmFast-0.5.2-py2.7-linux-x86_64.egg', '/usr/local/lib/python2.7/site-packages/uuid-1.30-py2.7.egg', '/usr/local/lib/python2.7/site-packages/pymongo-2.1.1_-py2.7-linux-x86_64.egg', '/usr/local/lib/python2.7/site-packages/multiprocessing-2.6.2.1-py2.7-linux-x86_64.egg', '/usr/local/lib/python2.7/site-packages/paramiko-1.7.7.1-py2.7.egg', '/usr/local/lib/python2.7/site-packages/Jinja2-2.6-py2.7.egg', '/usr/local/lib/python2.7/site-packages/simplejson-2.5.0-py2.7-linux-x86_64.egg', '/usr/local/lib/python2.7/site-packages/anyjson-0.3.1-py2.7.egg', '/usr/local/lib/python27.zip', '/usr/local/lib/python2.7', '/usr/local/lib/python2.7/plat-linux2', '/usr/local/lib/python2.7/lib-tk', '/usr/local/lib/python2.7/lib-old', '/usr/local/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/site-packages']
172.16.2.23 | FAILED >> {
    "failed": true,
    "msg": "",
    "parsed": false
}

stderr: [172.16.2.23] => Traceback (most recent call last):

  File "/var/tmp/ansible.d27986/ping", line 23, in ?

    import simplejson as json

ImportError: No module named simplejson


[root@nagios ~]# python2.7
Python 2.7.2 (default, May  3 2012, 11:30:5
[GCC 4.1.2 20080704 (Red Hat 4.1.2-51)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import simplejson
>>> print simplejson
<module 'simplejson' from '/usr/local/lib/python2.7/site-packages/simplejson-2.5.0-py2.7-linux-x86_64.egg/simplejson/__init__.pyc'>
>>> import json
>>> print json
<module 'json' from '/usr/local/lib/python2.7/json/__init__.pyc'>
>>> import simplejson as json
>>> print simplejson
<module 'simplejson' from '/usr/local/lib/python2.7/site-packages/simplejson-2.5.0-py2.7-linux-x86_64.egg/simplejson/__init__.pyc'>
>>> print json
<module 'simplejson' from '/usr/local/lib/python2.7/site-packages/simplejson-2.5.0-py2.7-linux-x86_64.egg/simplejson/__init__.pyc'>

论坛徽章:
0
9 [报告]
发表于 2012-05-03 16:45 |只看该作者
我感觉你装的Python版本好乱,给你提个解决方法,去http://pypi.python.org/pypi/virtualenv下载该软件包,独立Python运行环境。
[@localhost ~]# ansible test -m ping
10.13.203.15 | success >> {
    "ping": "pong"
}

10.13.202.116 | success >> {
    "ping": "pong"
}

论坛徽章:
0
10 [报告]
发表于 2012-05-03 20:15 |只看该作者
本帖最后由 gron 于 2012-05-03 20:16 编辑

回复 9# 追忆的风筝


是啊,我这环境就是有些乱了,请问你的是什么环境啊?我再换个环境用你的办法试一下!

我的是centos 5.4 64bit 下 python2.7.tgz  安装的。

多谢,朋友!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP