Windows 7 32ビットにPython BindingsでThriftをインストールします
質問
インストールしようとしています ピカッサ, 、Windows 7のPythonのCassandraクライアント。
ランニング pip install pycassa
このエラーメッセージを受け取りました:
error: unable to find vcvarsall.bat
より深く掘り下げて、PythonがThrift LibraryとPython Bindingsのインストールに失敗したことがわかりました。人々が提案する1つの方法は、C ++コンパイラをインストールすることです。 Visual Studio 2008 Express, 、 また Mingw Windows 7で、ソースからThriftをコンパイルします。
しかし、私はAnを見つけました Thriftのオンラインコンパイルされたバージョン。コンパイルされたバージョンのThriftをPythonにバインドして、Pycassaで使用する方法はありますか?または、ソースからリサイクルをコンパイルする必要がありますか?
解決
Thriftには実際には2つの(種類の)コンポーネントがあります。インターフェイスが与えられたコードを生成するThriftコンパイラがあり、それから各言語の低レベルのThriftプロトコルとトランスポートを実装する言語ごとのライブラリがあります。
ほぼ間違いなく、リンクしたものであるThrift Compilerは必要ありません。君は 行う Thrift Pythonライブラリが必要です。 PIPは、これをPycassaの依存関係としてインストールしようとします。それが破壊されている理由は、Thrift Pythonライブラリに含まれるC拡張機能があり、インストールプロセス中にそれをコンパイルしようとすることです。コンピレーションが機能するには、特別にいくつかのことをする必要があります。
開発目的でこれを行っている場合は、最新情報をダウンロードできます Thrift Pythonライブラリ 手動で、src/protocol/fastbinary.cを削除してから、トップレベルのディレクトリから「setup.pyインストール」を実行します。これは、拡張機能をコンパイルしてインストールしている場合よりも遅くなりますが、開発目的では正常に動作します。この時点で「PIPインストール-No-Deps Pycassa」を使用できますが、Pycassaだけを自動的にインストールしようとはしません。
生産のためにこれを行っている場合、C拡張子をコンパイルしてインストールすることを望むでしょう。これを行うには、インストールする必要があります Visual C ++ 2008 Express Edition, 、SVNのThriftの最新バージョンをチェックして、Lib/Pyディレクトリにアクセスして、そこで「setup.pyインストール」を実行します。