首页IT科技ubuntu终端运行py文件(笔记:Ubuntu下快速开始使用Python Thrift | 孙立文的博客)

ubuntu终端运行py文件(笔记:Ubuntu下快速开始使用Python Thrift | 孙立文的博客)

时间2025-07-09 00:26:20分类IT科技浏览4381
导读:笔记:Ubuntu下快速开始使用Python Thrift...

笔记:Ubuntu下快速开始使用Python Thrift

2

本文介绍如何在Ubuntu 10.04下安装Apache Thrift并用Python写一个Demo                。

apt-get install libboost-dev libevent-dev python-dev automake pkg-config libtool flex bison sun-java6-jdk

wget http://www.apache.org/dist//thrift/0.8.0/thrift-0.8.0.tar.gz

tar zxvf thrift-0.8.0.tar.gz

cd thrift-0.8.0

./configure

make

sudo make install

sudo pip install thrift

编辑接口文件 hellowworld.thrift:

service HelloWorld {

string ping(),

string say(1:string msg)

}

编辑 server.py

#!/usr/bin/env python

import socket

import sys

sys.path.append(./gen-py)

from helloworld import HelloWorld

from helloworld.ttypes import *

from thrift.transport import TSocket

from thrift.transport import TTransport

from thrift.protocol import TBinaryProtocol

from thrift.server import TServer

class HelloWorldHandler:

def ping(self):

return "pong"

def say(self, msg):

ret = "Received: " + msg

print ret

return ret

handler = HelloWorldHandler()

processor = HelloWorld.Processor(handler)

transport = TSocket.TServerSocket("localhost", 9090)

tfactory = TTransport.TBufferedTransportFactory()

pfactory = TBinaryProtocol.TBinaryProtocolFactory()

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

print "Starting thrift server in python..."

server.serve()

print "done!"

编辑 client.py

#!/usr/bin/env python

import sys

sys.path.append(./gen-py)

from helloworld import HelloWorld

from thrift import Thrift

from thrift.transport import TSocket

from thrift.transport import TTransport

from thrift.protocol import TBinaryProtocol

try:

transport = TSocket.TSocket(localhost, 9090)

transport = TTransport.TBufferedTransport(transport)

protocol = TBinaryProtocol.TBinaryProtocol(transport)

client = HelloWorld.Client(protocol)

transport.open()

print "client - ping"

print "server - " + client.ping()

print "client - say"

msg = client.say("Hello!")

print "server - " + msg

transport.close()

except Thrift.TException, ex:

print "%s" % (ex.message)

thrift --gen py helloworld.thrift

python server.py

python client.py

参考: Thrift the missing guide

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
网站标题优化技巧(优化网站标题是什么意思)