Skip to the content.

TarsPython 使用说明

TarsPython 提供了whl的安装包以及tars2py的工具, 方便业务开发者使用python开发Tars相关的服务.

源码编译

如果你是通过源码编译得到TarsPython, 则需要做如下步骤:

安装whl包

#安装tars包
pip install tars-1.0.0-cp311-none-manylinux2014_x86_64.whl 

#验证是否安装成功,如果输出当前时间则安装正常,否则失败(请确认包的版本与系统是否匹配)
python -c 'from tars.kernel  import TC_Common;print(TC_Common.now2msstr())' 

2024-03-23 12:53:54.910

#安装pyinstaller用来后续打包python程序使用
pip install pyinstaller

创建自己的服务

#工程目录
mkdir workspace
cd workspace

#使用提供好的工具创建 demo 工程, 如果找不到create_tars_svr.py, 则设置PATH, 如果是linux则为: $HOME/.local/bin/
create_tars_svr.py --app Test --server HelloServer --servant Hello


#会自动生成以下文件
HelloServer
    ├── HelloClient.py		#客户端文件
    ├── Hello.tars			#tars文件
    ├── HelloServer.conf	#业务配置文件
    ├── HelloServer.py		#服务启动入口文件
    ├── Test
       ├── Hello.py		#tars生成的协议文件
       └── __init__.py		
    └── Test.HelloServer.config.conf	#服务servant配置,用于本地调试

说明:

启动服务端

#进入工程目录
cd HelloServer
#启动服务端程序
python3 HelloServer.py --config=Test.HelloServer.config.conf

#输出
...
[initialize server] .............................. [Done]
in app init........... Test HelloServer

 
#运行测试客户端
python3 HelloClient.py 

#输出
...
rpc before: 1652925700.5920298
callback_test: 0 {'c': 300}

#如果没有抛出异常,则运行正确

发布服务

代码开发完成后,需要将代码打包成一个单独的可执行程序,来通过tars平台发布

打包依赖 pyinstaller,需要先安装pyinstaller : pip install pyinstaller

会生成HelloServer.tgz 文件, 发布这个文件的tars平台即可, 注意模板选择: tars_python

你也可以直接执行可执行程序来启动服务端,如果启动正常,则打包成功,否则需要确认python环境和pyinstaller是否正确安装 ./HelloServer –config=Test.HelloServer.config.conf

打包生成HelloServer.tgz过程中, pyinstaller会分析依赖, 将python环境以及相关依赖都打包进了HelloServer.tgz, 因此正常情况下, 服务器上不需要额外安装python, 但是pyinstaller有时候会分析不准确, 打包时缺少依赖, 这个时候你需要自己配置依赖, 请参考pyinstaller相关文档.

其他说明

python版本的服务框架, 底层使用c++来实现, 因此它具备以下特性: