出處:http://www.cnblogs.com/hpblogs/p/4041540.html
- 從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
在進行最後的python setup.py build --compiler=mingw32時,提示我.\src\C\SuiteSparse\SuiteSparse_config中的SuiteSparse_config.c裏面的 struct timespec t ;是找不到
上網找了一下,發現這個好像是在linux中用到的time.h中定義的,我將cpp和h在vs中構建一下發現,根本就不會編譯這一段,所以之間將預定義的那一部分全部註釋掉就可以了,不知道mingw爲什麼回去編譯它。反正註釋掉就可以了。