【问题标题】:Installing Thrift with Python bindings on Windows 7 32-bit在 Windows 7 32 位上使用 Python 绑定安装 Thrift
【发布时间】:2011-11-29 12:48:18
【问题描述】:

我正在尝试在 Windows 7 上安装 pycassa,这是一个用 Python 编写的 Cassandra 客户端。

运行pip install pycassa 我收到了这个错误信息:

error: unable to find vcvarsall.bat

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

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

【问题讨论】:

    标签: python windows-7 cassandra thrift pycassa


    【解决方案1】:

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

    您几乎可以肯定不需要 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”。

    【讨论】:

    • 非常感谢泰勒。我还需要从 setup.py 中删除 fastbinary 扩展,但除此之外,它工作正常。
    • 啊,是的,我忘了包括那个。感谢您提及。
    猜你喜欢
    • 2012-11-09
    • 2012-06-17
    • 2018-05-15
    • 2016-02-09
    • 2016-03-31
    • 2020-02-21
    • 2019-01-19
    相关资源
    最近更新 更多