我的python 是windows 下3.4.2 32bit的,下面的是基于这个环境安装的SSH模块paramiko,其中遇到两个大坑,折腾了两个晚上,我想说,python安装偏低层的模块实在太垃圾,还是windows下,顿时对python的印象变差,与优美的语法格格不入。好了抱怨怎么多,还是说说我怎么安装这个恼火的paramiko。
paramiko 依赖于 pycrypto, ecdsa两个模块,所以首先安装 pycrypto, ecdsa
D:\SW\计算机开发工具\Python\3.4.3-32bit\matplotlib>pip show paramiko
---Location: d:\programfiles\develop\python34\lib\site-packages\paramiko-1.18.3-py3.4.egg
Requires: pycrypto, ecdsa
下载的是带setup.py的包就用
python setup.py install
下载的是带whl的包就用pip install 安装
pip install ecdsa-0.13-py2.py3-none-any.whl
就是这个原因折腾了两个晚上,中间试了各种版本,2.2.0, 2.2.1,github最新的master,各类型的包whl的,带setup.py的,换python 版本(没换过3.4+的版本,害怕这个最新的会有更多兼容性的问题,模块不支持的问题),都不行,一开始怀疑是编译器环境的问题,各种试,安装minGW都没用,最后就要放弃这个垃圾paramiko时,安装了VS2015,随便试了个1.13的版本就好了,后来亲测,1.18可以装上
下载地址
https://github.com/paramiko/paramiko/
下载的是带setup.py的包就用
python setup.py install
下载的是带whl的包就用
pip install whl文件的名字
如果一切OK,恭喜你,如果遇到了Unable to find vcvarsall.bat,则需要安装Visual Studio对垃圾安装包paramiko进行编译,我安装的Visual Studio 2015,然后在cmd窗口下执行下面命令
Execute the following command based on the version of Visual Studio installed:
SET VS90COMNTOOLS=%VS100COMNTOOLS%
SET VS90COMNTOOLS=%VS110COMNTOOLS%
SET VS90COMNTOOLS=%VS120COMNTOOLS%
SET VS90COMNTOOLS=%VS140COMNTOOLS%
如果还不行,python安装路径...\Lib\distutils目录下有个msvc9compiler.把toolskey直接指定你安装的VS版本
if not productdir or not os.path.isdir(productdir):
#toolskey = "VS%0.f0COMNTOOLS" % version
toolskey = "VS140COMNTOOLS"
toolsdir = os.environ.get(toolskey, None)
这样还不行,我建议你永生不要用paramiko这个垃圾安装包,不管他多好用,有这时间还不如自己研究写一个ssh的模块或者安装别的类似模块。