我正在尝试在Windows 7上安装pycassa,一个Python中的Cassandra客户端。
正在运行pip install pycassa
我收到以下错误消息:
error: unable to find vcvarsall.bat
深入挖掘,我发现Python无法安装thrift库和Python绑定。人们建议的一种方法是在Windows 7上安装C ++编译器,例如Visual Studio 2008 Express或mingw,并从源代码编译Thrift。
然而,我找到了online compiled version of Thrift。 有没有办法将Thrift的编译版本绑定到Python中,然后在pycassa中使用它?或者我是否必须从源代码编译thrift?
答案 0 :(得分:3)
Thrift真的有两种(各种)组件:Thrift编译器,它生成给定接口的代码,然后是每语言库,它们为每种语言实现低级thrift协议和传输。 / p>
你几乎肯定不需要Thrift编译器,这是你链接到的。你做需要Thrift python库; pip尝试将其安装为pycassa的依赖项。它破坏的原因是Thrift python库中包含一个C扩展,并且在安装过程中,它尝试编译它。为了使编译工作,你需要专门做一些事情。
如果您只是为了开发目的而这样做,可以手动下载最新的Thrift python library,删除src / protocol / fastbinary.c,然后从顶级目录运行'setup.py install' 。这比编译和安装扩展程序要慢,但是出于开发目的,它可以正常工作。此时你可以使用'pip install --no-deps pycassa',它不会尝试自动安装Thrift,只是pycassa。
如果您正在为生产执行此操作,则可能需要编译和安装C扩展。为此,您需要安装Visual C++ 2008 Express Edition,从SVN查看最新版本的Thrift,转到lib / py目录,然后在那里运行'setup.py install'。