最近由於一些需求,要搞一下http://www.php.cn/wiki/1514.html" target="_blank">python,於是周末搞了搞.要串連伺服器,進行一些伺服器的操作,於是安裝這個Paramiko包,直接
pip install paramiko
結果.報錯,最關鍵的一句是:
error: Unable to find vcvarsall.bat
google一圈.最終找到一種最簡單地方法.其他的安裝vs.安裝MinGW都太複雜了.安裝PyCrypto 第三方版因為paramiko依賴PyCrypto,上面那個錯就是他報錯出來的.安裝 PyCrypto第三方版
pip install --use-wheel --no-index --find-links=https://github.com/sfbahr/PyCrypto-Wheels/raw/master/pycrypto-2.6.1-cp35-none-win_amd64.whl pycrypto
安裝完成後,再次安裝paramiko即可.2.修改nt.py安裝完上面的步驟,寫一個簡單的程式測試下
#-*- coding: utf-8 -*-#!/usr/bin/python import paramikoimport threadingdef ssh2(ip,username,passwd,cmd): try: ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(ip,22,username,passwd,timeout=5) for m in cmd: stdin, stdout, stderr = ssh.exec_command(m) out = stdout.readlines() #螢幕輸出 for o in out: print(o) print('%s\tOK\n'%(ip)) ssh.close() except : print('%s\tError\n'%(ip))if name=='main': cmd = ['find /home/admin/logs/ -mtime +3 -name \'*.log.*\' -exec rm -rf {} \;']#你要執行的命令列表 username = "admin" #使用者名稱 passwd = "password" #密碼 threads = [] #多線程 ip = "127.0.0.1" print("Begin......") a=threading.Thread(target=ssh2,args=(ip,username,passwd,cmd)) a.start() input()
運行報錯.
ImportError: No module named 'winrandom'
找到python3.5的安裝目錄的
Lib\site-packages\Crypto\Random\OSRNG
的nt.py檔案將
import winrandom
改成
from . import winrandom
再次運行ok.非常簡單