CVXOPT安装在文件misc.h中的复杂类型声明失败

时间:2017-02-23 21:37:01

标签: python c cvxopt

尝试在Windows上使用pip安装Python的cxvopt软件包时,收到以下错误消息:

misc.h(35): error C2146: syntax error: missing ';' before identifier 'z'
misc.h(35): error C2061: syntax error: identifier 'z'
misc.h(36): error C2059: syntax error: '}'

......等等。

错误发生在下面显示的复杂变量声明的文件misc.h(在base.c中引用)中:

#ifndef NO_ANSI99_COMPLEX
typedef union {
  double d;
  int_t i;
  double complex z;
} number;
#endif

在我使用的另一台计算机上不会发生这种情况。两者都根据需要安装了Visual Studio 14.0。

任何看过这个问题的人都可以提出解决方案吗? (我的第一个想法是包含“complex.h”,但是在cvxopt.h中引用了它,它在misc.h之前包含在base.c中。)

1 个答案:

答案 0 :(得分:0)

在3.4之后的python版本的Windows上不支持cvxopt,并且由于其他答案中概述的原因我无法构建它。我正在使用conda,我已经为python 3.4创建了一个单独的环境,并使用pip安装了cvxopt,并且它运行良好,因为有该版本的Python的预构建二进制文件。我还为VS14安装了visual studio cpp构建工具

(在以管理员身份运行的conda命令提示符中)

//Setup vcvars using batch file change to whatever path and version of vcvars is correct for you 
"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\vcvars64.bat"
//setup new environment using python 3.4 
conda create -n py34 python=3.4.5 anaconda
//switch to new environment 
activate py34
//install cvxopt
pip install cvxopt