2017-02-23 6 views
0

Windows上ピップを使用して、Python用cxvoptパッケージをインストールしようとすると、I取得するには、次のエラーメッセージ:CVXOPTのインストールは、ファイルmisc.hに複合型の宣言で失敗

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: '}' 

...というように。

エラーは、以下に示す複素変数の宣言で(base.cで参照)ファイルmisc.hで発生します。

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

これは私が使用している別のコンピュータ上では発生しません。両方ともVisual Studio 14.0が必要に応じてインストールされています。

この問題を発見した人は誰でも解決策を提案できますか? (私の最初の考えは "complex.h"を含めることでしたが、それはmis.cの前にbase.cに含まれていたcvxopt.hで参照されていました)

+0

は 'int_t'は何ですか(condaで管理者としてプロンプト実行コマンド)VS14

ためにインストールのVisual Studioのcppビルドツールを持っていますか? – Olaf

答えて

0

Visual Studio 14.0には哀れなANSI C89コンパイラがあります。 the obsolete ISO C99 standard that this code requiresもサポートしていません。コンパイルに成功するためにマクロNO_ANSI99_COMPLEXを定義していると思います。このマクロが定義されている場合、コードはC99固有の構成をスキップします。

このマクロは、他のコンピュータでコードを正常にコンパイルしたときに定義されていると思いますか?

0

3.4以降のpythonのバージョンでは、cvxoptはサポートされていません。他の答えに記載されている理由でビルドできませんでした。私はcondaを使用しています。私はPython 3.4用の別の環境を作成し、pipを使用してcvxoptをインストールしました。そして、Pythonのバージョン用に事前ビルドされたバイナリがあるのでうまく動作しました。私はまた、

//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 
関連する問題