Thrift入门篇-运行Tutorial

本文假设你已经了解Thrift是什么了,如果还不了解,请借助强大的谷歌。

本文的开发环境是windows 7 + python2.6

Thrift官方主页:http://thrift.apache.org/

 

先来这里下载thrift-0.7.0.tar.gz 和Thrift compiler for Windows (thrift-0.7.0.exe) 。thrift-0.7.0.exe是帮你编译好的,可以在windows下运行。

解压thrift-0.7.0.tar.gz

 

学一样东西之前,当然是看Tutorial啦,不过文档还不完善啊。下面将以Python来举例子。

1.安装thrift库

先要安装thrift-0.7.0\lib\py里的库,setup.py install 注意,在windows下安装不成功,需要用VC编译,还要对代码做相应修改,很麻烦,就不说了,直接在这里下载已经编译好的版本。http://www.lfd.uci.edu/~gohlke/pythonlibs/ (这里真的是个好地方,感谢大神)

2.Thrift生成代码

Thrift能够帮你生成一部分代码,让你更关注你的业务部分,而不必关注它是怎么通信的。

在thrift-0.7.0\tutorial,就是一个官方教程了。可以先看看tutorial.thrift,这是thrift定义的语法,就是通过它来生成各种代码的了。

 

生成代码开始啦,使用之前下载的thrift-0.7.0.exe,在thrift-0.7.0\tutorial目录下执行命令

thrift-0.7.0.exe –r –gen py –gen java tutorial.thrift

搞定,在当前文件夹就产生两个文件夹了,分别是gen-java和gen-py。gen-java咱暂时用不着,生成来玩的:)如果你想生成更多其他类型的代码,–gen xxx就可以了。

3.运行

进入thrift-0.7.0\tutorial\py目录,在运行之前,先改一下PythonServer.py

不知道是我安装的thrift库有问题还是它的tutorial写错了,找到下面这行代码。

transport = TSocket.TServerSocket(9090)

把它改为

transport = TSocket.TServerSocket(port=9090)

好吧,双击运行服务端PythonServer.py。看到Starting the server就证明你成功运行服务端了!如果黑乎乎的窗口一闪而过,那看看哪一步做错了吧。用cmd运行看看。

 

接下来,再运行客户端PythonClient.py,这时就可以看到服务端有信息输出了~~成功!

 




fatkun

9条评论

你好,我用0.8的thrift ,windows 7 + python2.6 照着这个例子做了一下,最后出现:
Could not connect to localhost:9090
这个是什么原因呀?谢谢。

你运行PythonServer.py里吗?检查一下这个有没有出错
另外可以在cmd执行netstat -an 看看端口有没有在监听

你好,我在执行时,出现这个错误
D:\thrift-0.8.0\tutorial>thrift-0.8.0.exe -r -gen py -gen perl ./tutorial.thirft

[FAILURE:D:/thrift-0.8.0/tutorial/tutorial.thirft:1] Could not open input file:
“D:/thrift-0.8.0/tutorial/tutorial.thirft”

不知是什么原因呢,我看过是有D:/thrift-0.8.0/tutorial/tutorial.thirft这个文件的

还有你说的下载编译好的版本,下载后放到那个目录里呢,谢谢!!!

不太清楚。。试试把”./tutorial.thirft”改成”tutorial.thirft”
下载编译好的版本是exe文件来的,运行安装就可以了。

问题解决了。我的环境是win7+py2.7。遇到的问题和你一样。
我将transport = TSocket.TServerSocket(9090)改成了
transport = TSocket.TServerSocket(‘localhost’,port=9090) 问题得以解决,希望对你有所帮助
我的邮箱 buaagaowei@gmail.com

按照作者的方法实现了一遍,用的thrift版本是thrift-0.10.0,运行PythonServer.py报错,提示找不到tutorial模块,然后pip install tutorial失败“ Could not find a version that satisfies the requirement tutorial (from versions: ) No matching distribution found for tutorial”,不知道我哪里步骤有问题

发表评论

电子邮件地址不会被公开。