Archive for 6月, 2015

记一下 Thrift windows python 安装

现在已经有windwos 预编译的 thrift 了,可以直接下载。先到 https://thrift.apache.org/download 页面把thrift-0.9.2.tar.gz 、Thrift compiler for Windows (thrift-0.9.2.exe) 下载下来。

1.把 thrift-0.9.2.exe 改名为 thrift.exe 并放到 path 里面。

2. 解压 thrift-0.9.2.tar.gz

3.进入thrift-0.9.2\lib\py目录,执行 setup.py install 安装python扩展。

4.现在到 thrift-0.9.2\tutorial 目录,执行 thrift.exe –r –gen py tutorial.thrift 会在 gen-py 目录生成 thrift 代码。

5.现在可以尝试执行 python 例子了。

服务器:

 
D:\thrift-0.9.2\tutorial>c:\Python27\python.exe py\PythonServer.py
Traceback (most recent call last):
  File "py\PythonServer.py", line 24, in 
    sys.path.insert(0, glob.glob('../../lib/py/build/lib.*')[0])
IndexError: list index out of range

#这个错误直接注释掉出错行即可。

D:\thrift-0.9.2\tutorial>c:\Python27\python.exe py\PythonServer.py
Starting the server...
ping()
add(1,1)
calculate(1, Work(comment=None, num1=1, num2=0, op=4))
calculate(1, Work(comment=None, num1=15, num2=10, op=2))
getStruct(1)
ping()
add(1,1)
calculate(1, Work(comment=None, num1=1, num2=0, op=4))
calculate(1, Work(comment=None, num1=15, num2=10, op=2))
getStruct(1)
ping()
add(1,1)
calculate(1, Work(comment=None, num1=1, num2=0, op=4))
calculate(1, Work(comment=None, num1=15, num2=10, op=2))
getStruct(1)
ping()
add(1,1)
calculate(1, Work(comment=None, num1=1, num2=0, op=4))
calculate(1, Work(comment=None, num1=15, num2=10, op=2))
getStruct(1)
ping()
add(1,1)
calculate(1, Work(comment=None, num1=1, num2=0, op=4))
calculate(1, Work(comment=None, num1=15, num2=10, op=2))
getStruct(1)

客户端:

 
d:\thrift-0.9.2\tutorial>c:\Python27\python.exe py\PythonClient.py
ping()
1+1=2
InvalidOperation: InvalidOperation(what=4, why='Cannot divide by 0')
15-10=5
Check log: 5

d:\thrift-0.9.2\tutorial>

No comment »

升级gradle后混淆代码出错…

android studio 每次更新都是大麻烦。
上次更新更新混淆命令改成了“minifyEnabled true”,折腾了半天。

这次更新混淆又变化了,原来“proguardFile ‘proguard-rules.txt’” 指定混淆文件,这次变成了 “proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.txt’”

次次更新不兼容,实在太坑了。

No comment »