鬧騰了好幾天,終於將CVXOPT安裝成功,這里和大家分享安裝過程:
- 從www.python.org下載並安裝Python。接下來,使用Python 2.7.5(32bit)版本(注意:64位win 7系統也可以直接安裝).
- 下載並安裝MinGW編譯器(www.mingw.org)
- 下載並運行MinGW installer
- 選擇安裝C編輯器(C compiler)、Fortran編譯器(Fortran compiler)以及MSYS Basic System
- 打開環境變量,設置環境變量,變量名為PATH,變量值為c:\Python27;c:\MinGW\bin;c:\MinGW\msys\1.0\bin。如下圖所示
-

- 下載並編譯BLAS
- 下載blas.tgz,解壓縮到BLAS文件夾
- 進入命令行並切入到BLAS文件夾中
- 輸入命令行
-
sed 's/_LINUX/_WIN/' make.inc -i
-
make && cp blas_WIN.a ../libblas.a
-
- 注意:../ 表示當前目錄的上一級目錄
- 下載blas.tgz,解壓縮到BLAS文件夾
- 下載並編譯LAPACK
- 下載lapack.tgz,解壓縮到LAPACK
- 進入命令行並切入到LAPACK文件夾
- 輸入命令行如下:
- cp make.inc.example make.inc
- make lapacklib && cp liblapack.a ..
- 注意:.. 表示當前目錄的上一級目錄
- 下載並安裝CVXOPT
- 下載CVXOPT,並解壓到cvxopt-1.1.7下
- 拷貝第3、4步生成的libblas.a和liblapack.a到目錄cvxopt-1.1.7/src下
- 編輯cvxopt-1.1.7/下setup.py文件,設置環境變量BLAS_LIB和BLAS_LIB_DIR:
- BLAS_LIB = [‘blas’,’gfortran’]
- BLAS_LIB_DIR = ‘.’
- 使用下面的命令從\Python27\Lib\distutils\cygwinccompiler.py中移除‘-mno-cygwin’,
- sed 's/-mno-cygwin//g' -i'.bak' c:\Python27\Lib\distutils\cygwinccompiler.py
- 注意:該命令需要以管理員身份運行,管理員身份運行方法參見http://jingyan.baidu.com/article/0320e2c181dc461b87507b37.html
- 在cvxopt-1.1.7文件夾下運行如下命令
- python setup.py build --compiler=mingw32
-
python setup.py install
- 最終在 ..\Python27\Lib\site-packages 下看到了cvxopt-1.1.7-py2.7.egg-info,並且用ipython能夠順利的import cvxopt. DONE!!!
- python的編譯方式改回來
- mv c:\Python27\Lib\distutils\cygwinccompiler.py.bak c:\Python27\Lib\distutils\cygwinccompiler.py
- OK
