thrift安装及python和c++版本调试

一、安装过程

1.安装依赖库

]# yum install boost-devel-static libboost-dev libboost-test-dev libboost-program-options-dev libevent-dev automake libtool flex bison pkg-config g++ libssl-dev ant

2.安装thrift

先下载thrift-0.9.3.tar.gz,解压后进入thrift-0.9.3目录

//需要支持的语言用--with, 不需要支持的语言用--without, 像ruby等语言最好去掉,否则可能会有一些兼容问题
]# ./configure --with-cpp --with-boost --with-python --without-csharp --with-java --without-erlang --without-perl --without-php --without-php_extension --without-ruby --without-haskell  --without-go
]# make
]# make install
//成功会显示 BUILD SUCCESSFUL,通过thrift命令查看是否安装成功
]# thrift 
//安装Thrift的时候遇到,如下错误
#./configure --prefix=/usr/local/thrift
trhift configure: error: "Error: libcrypto required."
//解决办法:
//安装 openssl openssl-devel (centOS)
#yum -y install openssl openssl-devel
# ./configure --prefix=/usr/local/thrift

二、调通单机版thrift,python版本

1.安装依赖库

]# pip install thrift==0.9.3

2.编写schema文件

//创建schema目录,创建一个schema文件RecSys.thrift
[[email protected] schema]# cat RecSys.thrift
service RecSys{
    string rec_data(1:string data)
}

3.使用thrift生成python文件

]# thrift --gen python RecSys.thrift
//产生gen-py目录

4.开发python代码

// client代码:
#coding=utf=8

import sys
sys.path.append(‘../schema/gen-py‘)

from thrift import Thrift
from thrift.transport import TSocket
from thrift.transport import TTransport
from thrift.protocol import TBinaryProtocol

from RecSys import RecSys

try:
    # 设置端口
    transport = TSocket.TSocket(‘localhost‘, port=9090)

    # 设置传输层
    transport = TTransport.TBufferedTransport(transport)

    # 设置传输协议
    protocol = TBinaryProtocol.TBinaryProtocol(transport)

    client = RecSys.Client(protocol)

    transport.open()

    rst = client.rec_data("are you ok!!!")
    print "receive return data: ", rst

    transport.close()

except Thrift.TException, ex:
    print "%s" % (ex.message)
// server 代码
#coding=utf=8

import sys
sys.path.append(‘../schema/gen-py‘)

from thrift.transport import TSocket
from thrift.transport import TTransport
from thrift.protocol import TBinaryProtocol
from thrift.server import TServer

from RecSys import RecSys
from RecSys.ttypes import *

class RecSysHandler(RecSys.Iface):
    def rec_data(self, a):
        print "Receive: %s" %(a)
        return "I‘m OK !!!"

if __name__ == "__main__":

    # 实例化handler
    handler = RecSysHandler()

    # 设置processor
    processor = RecSys.Processor(handler)

    # 设置端口
    transport = TSocket.TServerSocket(‘localhost‘, port=9090)

    # 设置传输层
    tfactory = TTransport.TBufferedTransportFactory()

    # 设置传输协议
    pfactory = TBinaryProtocol.TBinaryProtocolFactory()

    server = TServer.TThreadedServer(processor, transport, tfactory, pfactory)

    print ‘Starting the server...‘
    server.serve()
    print ‘done.‘

原文地址:https://www.cnblogs.com/CoolJayson/p/9236641.html

时间: 2024-10-09 23:30:21

thrift安装及python和c++版本调试的相关文章

Python多版本编译安装&修改Python默认启动版本

deepin\Ubuntu环境. 需要多个版本Python解释器. 依次下载所需要版本源码包, 解压缩. root环境 sudo -i ## 安装环境依赖 apt install -y make build-essential libssl-dev zlib1g-dev apt install -y libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm apt install -y libncurses5-dev libncursesw

python3.6 和python 2.7版本安装pycrypto过程及问题(不需要安装vs)

python安装pycrypto真的是踩到很多坑,说起来一把辛酸泪,好在最后成功解决了,总结了一下遇到的问题,写出来与大家共享 首先要明白的是crypto和pycrypto是两个不同的模块,小伙伴们不要去安装crypto 问题一:unable to find vcvarsall.bat 在网上下载pycrypto的包,进入包目录,使用python setup.py install命令安装,报错如图 大家看到这肯定去百度啊,百度就告诉你安装vs吧,但vs这个东西安装时间长,卸载又麻烦,加上我们平时

windows安装使用python、环境设置、多python版本的切换、pyserial与多版本python安装、windows命令行下切换目录

1.windows下安装python 官网下载安装即可 2.安装后的环境设置 我的电脑--属性--高级--设置path的地方添加python安装目录,如C:\Python27;C:\Python33 3.多版本的切换三种方法: 1)修改C:\Python27;C:\Python33内python.exe为python2.7.exe.python3.3.exe,即可区别开来 2)path路径中去除不用的,保留要用的 3)切换到想使用版本的python.exe目录下使用python解释器 4.下载好

Pycharm选择pyenv安装的Python版本

在macOS上使用pyenv实现Python多版本共存后,pyenv安装的Python版本存在于macOS下的 ~/.pyenv/versions/下. 在Pycharm时,选择此目录下对应的版本即可. 具体操作步骤(以macOS版本为例): Pycharm -> Preferences -> Project -> Project Interpreter -> Add Local 添加本地路径~/.pyenv/versions/,选择对应的版本.

SaltStack安装时python版本冲突导致安装失败

yum -y install salt-master 安装时,出现以下报错: file /usr/lib64/python2.6/zipfile.pyc from install of python-libs-2.6.6-66.el6_8.x86_64 conflicts with file from package python-2.6.6-36.el6.x86_64 file /usr/lib64/python2.6/zipfile.pyo from install of python-li

windows 如何将安装Anaconda之前已经安装的python版本(中已安装的库)移动到 Anaconda中

题目]如何将安装Anaconda之前已经安装的python版本(中已安装的库)移动到 Anaconda中 一.概述 之前安装tensorflow的安装了anaconda并用它进行安装,anaconda安装后里面也带有一个python的版本,之后我发现在cmd中运行时使用的的原来的python版本,并且此版本的python与anaconda中的是相互隔离的,我在原有的python下安装的库,激活tensorflow后是没有的. 所以就想将两个python版本进行合并. 在网上查找了好久,保留原有p

查看python和NumPy版本和安装路径

记录查看Python和NumPy版本以及路径的几条命令 # 查看Python版本及路径 python -V python -c "import sys;print(sys.executable)" # 查看NumPy版本及路径 python -c "import numpy;print(numpy.version.version)" python -c "import numpy;print(numpy.__version__)" # 借助pip

Thrift安装手册

本篇是Thrift官网安装文档的翻译,原地址点击这里.Thrift之前是不支持Windows的.但是似乎0.9版本以后已经支持Window了.介绍了Thrift安装的环境要求以及在centos,Debian/Ubuntu,OS X和Windows下的安装过程.并提出了一些安装过程中可能遇到的问题和解决办法.适用于thrift0.9版本. 1 Thrift的环境要求 Apache的Thrift的编译器为支持可移植由C++语言编写而成.但在安装到某些系统中时要求有一定的环境要求.在下面的指南中选择你

将Python自带版本(2.6.6)升级到2.7.9

将Python自带版本(2.6.6)升级到2.7.9 查看当前python版本: # pythonPython 2.6.6 (r266:84292, Jan 22 2014, 09:42:36)  [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2Type  "help", "copyright", "credits" or "license" for more informati