1

我正在尝试在 Windows 7 上安装 Python 中的 Cassandra 客户端pycassa 。

运行pip install pycassa我收到此错误消息:

error: unable to find vcvarsall.bat

深入挖掘,我发现 Python 未能安装 thrift 库和 Python 绑定。人们建议的一种方法是在 Windows 7 上安装 C++ 编译器,例如Visual Studio 2008 Expressmingw,然后从源代码编译 Thrift。

但是,我找到了Thrift 的在线编译版本。有没有办法将 Thrift 的编译版本绑定到 Python 中,然后在 pycassa 中使用?还是我必须从源代码编译节俭?

4

1 回答 1

3

Thrift 确实有两种(类型)组件:Thrift 编译器,它生成给定接口的代码,然后是每个语言的库,它实现了每种语言的低级 thrift 协议和传输。

您几乎可以肯定不需要您链接到的 Thrift 编译器。你确实需要 Thrift python 库;pip 尝试将其安装为 pycassa 的依赖项。它破坏的原因是 Thrift python 库中包含一个 C 扩展,并且在安装过程中,它会尝试编译它。为了使编译工作,您需要特别做一些事情。

如果您只是出于开发目的这样做,您可以手动下载最新的Thrift python 库,删除 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”。

于 2011-11-29T22:29:16.673 回答