我的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
---Name: paramiko
Version: 1.18.3
Location: d:\programfiles\develop\python34\lib\site-packages\paramiko-1.18.3-py3.4.egg
Requires: pycrypto, ecdsa
1.下載安裝pycrypto-2.6.1.win32-py3.4 .exe,這個簡單,雙擊一路next
2.下載安裝 ecda
https://pypi.python.org/pypi/ecdsa#downloads
下載的是帶setup.py的包就用
python setup.py install
下載的是帶whl的包就用pip install 安裝
pip install ecdsa-0.13-py2.py3-none-any.whl
3.安裝paramiko,python版本<=3.4 的一定要下載1.18或者以下版本,不能是2開頭的版本。
就是這個原因折騰了兩個晚上,中間試了各種版本,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:
-
Visual Studio 2010 (VS10):
SET VS90COMNTOOLS=%VS100COMNTOOLS%
-
Visual Studio 2012 (VS11):
SET VS90COMNTOOLS=%VS110COMNTOOLS%
-
Visual Studio 2013 (VS12):
SET VS90COMNTOOLS=%VS120COMNTOOLS%
-
Visual Studio 2015 (VS14):
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的模塊或者安裝別的類似模塊。