我用paramiko模块写了一段程序,用pyhon自带的IDLE编写好后F5保存运行,在解释器里显示的结果一切正常,但是在cmd中输入“python 程序名.py”运行时总是报错无法运行,为什么??
代码如下:
#coding:utf-8
import paramiko
import xlwt
import time
#远程登入并获取到想要的数据
def ssh_connect(ip='172.16.121.51', port=2222, user='root', password='kedacom'):
#实例化SSH登入端
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#连接到linux设备
ssh.connect(ip, port, user, password)
#远程输入命令
command = 'top -b -d 1 -n 10| grep Cpu | awk \'{print $5}\' | cut -d \'%\' -f 1'
stdin, stdout , stderr = ssh.exec_command(command)
#CPU信息采集等待
time.sleep(20)
#读取CPU数据
data = stdout.read()
#将数据变为元组并写入到excel中
list_data = data.split('\n')
workbook = xlwt.Workbook(encoding = 'ascii')
worksheet = workbook.add_sheet('cpu date')
for i in range(10):
worksheet.write(i,0, list_data[i])
save_local = 'd:\\Cpu.xls'
workbook.save(save_local)
ssh.close()
print 'connect ok'
报错:
Traceback (most recent call last):
File "paramiko.py", line 2, in <module>
import paramiko
File "C:\Users\sunsuwen\sshparamiko\paramiko.py", line 43, in <module>
ssh_connect()
File "C:\Users\sunsuwen\sshparamiko\paramiko.py", line 9, in ssh_connect
ssh = paramiko.SSHClient()
AttributeError: 'module' object has no attribute 'SSHClient'
改了名字~但还是报这个错误~~
追答你的程序找不到paramiko。
你把paramiko库安装在什么位置?
在文件开头加上这两句,运行看print的输出“
print(sys.path)
检查一下有没有paramiko库的路径。没有的话,加入:
sys.path.insert(0, "路径\\path\\to\\paramiko")追问就是默认装到python2.7\Lib\site-packages里的 path里有的 主要为什么在python的解释器里运行可以但是这样运行就报错呢
追答在CMD里面启动python,调试一下看有什么信息:
python>>> import paramiko
>>> ssh = paramiko.SSHClient()
在CMD中没错的话,要检查你的文件路径和文件名有没有与paramiko重名的,更改之。