Python pip install cvxopt 错误:命令'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\



尝试使用" pip install&quot"来安装cvxopt。使用窗口10,Python 3.6.4(64位),并且已经安装了Microsoft Build Tools 2015和Visual Studio 14.0。我还直接从PYPI下载了该模块,没有运气。需要这个以进行优化教程,所以有什么建议吗?这是命令行:

C:>pip install cvxopt
Collecting cvxopt
  Using cached cvxopt-1.1.9.tar.gz
Installing collected packages: cvxopt
  Running setup.py install for cvxopt ... error
Complete output from command c:python36python.exe -u -c "import setuptools, tokenize;__file__='C:\Users\Clayton\AppData\Local\Temp\pip-build-81vbp793\cvxopt\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('rn', 'n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:UsersClaytonAppDataLocalTemppip-xcv57jyr-recordinstall-record.txt --single-version-externally-managed --compile:
running install
running build
running build_py
creating build
creating buildlib.win-amd64-3.6
creating buildlib.win-amd64-3.6cvxopt
copying srcpythonconeprog.py -> buildlib.win-amd64-3.6cvxopt
copying srcpythoncvxprog.py -> buildlib.win-amd64-3.6cvxopt
copying srcpythoninfo.py -> buildlib.win-amd64-3.6cvxopt
copying srcpythonmisc.py -> buildlib.win-amd64-3.6cvxopt
copying srcpythonmodeling.py -> buildlib.win-amd64-3.6cvxopt
copying srcpythonmsk.py -> buildlib.win-amd64-3.6cvxopt
copying srcpythonprinting.py -> buildlib.win-amd64-3.6cvxopt
copying srcpythonsolvers.py -> buildlib.win-amd64-3.6cvxopt
copying srcpython_version.py -> buildlib.win-amd64-3.6cvxopt
copying srcpython__init__.py -> buildlib.win-amd64-3.6cvxopt
UPDATING buildlib.win-amd64-3.6cvxopt/_version.py
set buildlib.win-amd64-3.6cvxopt/_version.py to '1.1.9'
running build_ext
building 'base' extension
creating buildtemp.win-amd64-3.6
creating buildtemp.win-amd64-3.6Release
creating buildtemp.win-amd64-3.6Releasesrc
creating buildtemp.win-amd64-3.6ReleasesrcC
C:Program Files (x86)Microsoft Visual Studio 14.0VCBINx86_amd64cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Ic:python36include -Ic:python36include "-IC:Program Files (x86)Microsoft Visual Studio 14.0VCINCLUDE" "-IC:Program Files (x86)Windows Kits10include10.0.10240.0ucrt" "-IC:Program Files (x86)Windows Kits10include10.0.10240.0shared" "-IC:Program Files (x86)Windows Kits10include10.0.10240.0um" "-IC:Program Files (x86)Windows Kits10include10.0.10240.0winrt" "-IC:Program Files (x86)Microsoft Visual Studio 14.0VCINCLUDE" "-IC:Program Files (x86)Windows Kits10include10.0.10240.0ucrt" "-IC:Program Files (x86)Windows Kits10include10.0.10240.0shared" "-IC:Program Files (x86)Windows Kits10include10.0.10240.0um" "-IC:Program Files (x86)Windows Kits10include10.0.10240.0winrt" /Tcsrc/C/base.c /Fobuildtemp.win-amd64-3.6Releasesrc/C/base.obj
base.c
c:usersclaytonappdatalocaltemppip-build-81vbp793cvxoptsrccmisc.h(35): error C2146: syntax error: missing ';' before identifier 'z'
c:usersclaytonappdatalocaltemppip-build-81vbp793cvxoptsrccmisc.h(35): error C2061: syntax error: identifier 'z'
c:usersclaytonappdatalocaltemppip-build-81vbp793cvxoptsrccmisc.h(36): error C2059: syntax error: '}'
src/C/base.c(46): error C2122: 'void *': prototype parameter in name list illegal
src/C/base.c(46): error C2122: 'int': prototype parameter in name list illegal
src/C/base.c(46): error C2122: 'void **': prototype parameter in name list illegal
src/C/base.c(49): error C2081: 'number': name in formal parameter list illegal
src/C/base.c(52): error C2081: 'number': name in formal parameter list illegal
src/C/base.c(55): error C2081: 'number': name in formal parameter list illegal
src/C/base.c(58): error C2081: 'number': name in formal parameter list illegal
src/C/base.c(60): error C2146: syntax error: missing ')' before identifier '_complex'
src/C/base.c(60): error C2061: syntax error: identifier '_complex'
src/C/base.c(60): error C2059: syntax error: ')'
src/C/base.c(67): error C2061: syntax error: identifier 'One'
src/C/base.c(67): error C2059: syntax error: ';'
src/C/base.c(67): error C2059: syntax error: '['
src/C/base.c(79): error C2146: syntax error: missing ')' before identifier '_complex'
src/C/base.c(79): error C2065: '_complex': undeclared identifier
src/C/base.c(79): error C2059: syntax error: ')'
src/C/base.c(79): error C2297: '*': illegal, right operand has type 'void'
src/C/base.c(79): error C2143: syntax error: missing ')' before ';'
src/C/base.c(95): error C2146: syntax error: missing ')' before identifier '_complex'
src/C/base.c(95): error C2065: '_complex': undeclared identifier
src/C/base.c(95): error C2059: syntax error: ')'
src/C/base.c(95): error C2297: '*': illegal, right operand has type 'void'
src/C/base.c(95): error C2143: syntax error: missing ')' before ';'
src/C/base.c(96): error C2146: syntax error: missing ')' before identifier '_complex'
src/C/base.c(96): error C2065: '_complex': undeclared identifier
src/C/base.c(96): error C2059: syntax error: ')'
src/C/base.c(96): error C2297: '*': illegal, right operand has type 'void'
src/C/base.c(96): error C2143: syntax error: missing ')' before ';'
src/C/base.c(134): warning C4244: '=': conversion from 'Py_ssize_t' to 'double', possible loss of data
src/C/base.c(157): error C2146: syntax error: missing ')' before identifier '_complex'
src/C/base.c(157): error C2065: '_complex': undeclared identifier
src/C/base.c(157): error C2100: illegal indirection
src/C/base.c(157): error C2059: syntax error: ')'
src/C/base.c(157): error C2297: '*': illegal, right operand has type 'void *'
src/C/base.c(159): error C2146: syntax error: missing ')' before identifier '_complex'
src/C/base.c(159): error C2065: '_complex': undeclared identifier
src/C/base.c(159): error C2100: illegal indirection
src/C/base.c(159): error C2059: syntax error: ')'
src/C/base.c(159): error C2297: '*': illegal, right operand has type 'void *'
src/C/base.c(161): error C2146: syntax error: missing ')' before identifier '_complex'
src/C/base.c(161): error C2065: '_complex': undeclared identifier
src/C/base.c(161): error C2100: illegal indirection
src/C/base.c(161): error C2059: syntax error: ')'
src/C/base.c(161): error C2297: '*': illegal, right operand has type 'void *'
src/C/base.c(161): error C2297: '*': illegal, right operand has type 'void'
src/C/base.c(161): error C2143: syntax error: missing ')' before ';'
src/C/base.c(166): error C2146: syntax error: missing ')' before identifier '_complex'
src/C/base.c(166): error C2065: '_complex': undeclared identifier
src/C/base.c(166): error C2100: illegal indirection
src/C/base.c(166): error C2059: syntax error: ')'
src/C/base.c(166): error C2297: '*': illegal, right operand has type 'void *'
src/C/base.c(166): error C2088: '*': illegal for struct
src/C/base.c(247): warning C4244: 'function': conversion from 'Py_ssize_t' to 'long', possible loss of data
src/C/base.c(259): error C2146: syntax error: missing ')' before identifier '_complex'
src/C/base.c(259): error C2065: '_complex': undeclared identifier
src/C/base.c(259): error C2059: syntax error: ')'
src/C/base.c(259): error C2297: '*': illegal, right operand has type 'void'
src/C/base.c(259): error C2143: syntax error: missing ')' before ';'
src/C/base.c(264): error C2146: syntax error: missing ')' before identifier 'a'
src/C/base.c(264): error C2081: 'number': name in formal parameter list illegal
src/C/base.c(264): error C2061: syntax error: identifier 'a'
src/C/base.c(264): error C2059: syntax error: ';'
src/C/base.c(264): error C2059: syntax error: ','
src/C/base.c(264): error C2059: syntax error: ')'
src/C/base.c(273): error C2146: syntax error: missing ')' before identifier 'a'
src/C/base.c(273): error C2081: 'number': name in formal parameter list illegal
src/C/base.c(273): error C2061: syntax error: identifier 'a'
src/C/base.c(273): error C2059: syntax error: ';'
src/C/base.c(273): error C2059: syntax error: ','
src/C/base.c(273): error C2059: syntax error: ')'
src/C/base.c(281): error C2146: syntax error: missing ')' before identifier 'a'
src/C/base.c(281): error C2081: 'number': name in formal parameter list illegal
src/C/base.c(281): error C2061: syntax error: identifier 'a'
src/C/base.c(281): error C2059: syntax error: ';'
src/C/base.c(281): error C2059: syntax error: ','
src/C/base.c(281): error C2059: syntax error: ')'
src/C/base.c(291): error C2081: 'number': name in formal parameter list illegal
src/C/base.c(291): error C2065: 'idiv': undeclared identifier
src/C/base.c(291): error C2065: 'ddiv': undeclared identifier
src/C/base.c(291): error C2065: 'zdiv': undeclared identifier
src/C/base.c(291): error C2099: initializer is not a constant
src/C/base.c(293): error C2146: syntax error: missing ')' before identifier 'a'
src/C/base.c(293): error C2081: 'number': name in formal parameter list illegal
src/C/base.c(293): error C2061: syntax error: identifier 'a'
src/C/base.c(293): error C2059: syntax error: ';'
src/C/base.c(293): error C2059: syntax error: ','
src/C/base.c(293): error C2059: syntax error: ')'
src/C/base.c(302): error C2146: syntax error: missing ')' before identifier 'a'
src/C/base.c(302): error C2081: 'number': name in formal parameter list illegal
src/C/base.c(302): error C2061: syntax error: identifier 'a'
src/C/base.c(302): error C2059: syntax error: ';'
src/C/base.c(302): error C2059: syntax error: ','
src/C/base.c(302): error C2059: syntax error: ')'
src/C/base.c(311): error C2081: 'number': name in formal parameter list illegal
src/C/base.c(311): error C2065: 'mtx_irem': undeclared identifier
src/C/base.c(311): error C2065: 'mtx_drem': undeclared identifier
src/C/base.c(311): error C2099: initializer is not a constant
src/C/base.c(360): error C2065: 'number': undeclared identifier
src/C/base.c(360): error C2146: syntax error: missing ';' before identifier 'a'
src/C/base.c(360): error C2065: 'a': undeclared identifier
src/C/base.c(360): fatal error C1003: error count exceeds 100; stopping compilation
error: command 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe' failed with exit status 2
----------------------------------------
Command "c:python36python.exe -u -c "import setuptools, tokenize;__file__='C:\Users\Clayton\AppData\Local\Temp\pip-build-81vbp793\cvxopt\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('rn', 'n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:UsersClaytonAppDataLocalTemppip-xcv57jyr-recordinstall-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:UsersClaytonAppDataLocalTemppip-build-81vbp793cvxopt

我们需要在cvxopt之前安装numpy mkl,请检查一下并下载numpy mkl软件包和适当的cvxopt,然后像以下内容一样安装它们:

  1. 打开CMD和CD至下载文件夹

  2. pip安装" numpy-1.13.1 mkl-cp36-cp36m-win_amd64.whl"

  3. pip安装" cvxopt-1.1.9-cp36-cp36m-win_amd64.whl"

cvxopt由于某些重度依赖(Blas,Lapack,Suitesparse)而难以从源(尤其是在Windows上)安装。在您的情况下,它已经失败了,因为它具有一些兼容的C-Compiler设置的更简单的依赖性。

阅读您将看到的安装docs,二进制文件仅适用于Python 2.7和Python 3.4(在Windows上)!

因此,要么使用这些python versions之一,然后再次进行,或者使用anaconda-distripution,然后通过conda-forge安装,如上所述。我强烈推荐Anaconda-way!编辑:在评论中提到的conda-forge中没有Windows-Builds)。

萨拉(Sara)基于Gohlke的二进制方法的方法可以起作用。但总的来说,这更麻烦(与其他库结合使用)。

还有官方的手册Windows安装,但恕我直言,这不值得(仍然限于某些python-versions)。

最新更新