闹腾了好几天,终于将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
- 注意:../ 表示当前目录的上一级目录
- 下载并编译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