参照文档:https://blog.csdn.net/qq_37556007/article/details/80844248
直接使用pip命令安装:pip install zeroc-ice,安装的是最新版本
文件-设置,project interpreter中添加zeroc-ice package
import sys,Ice,AE
with Ice.initialize(sys.argv) as communicator:
base = communicator.stringToProxy("%s:default -h %s -p %s"%(servicename,ip,port))
# print type(base)
printer = AE.AnalysisEnginePrx.checkedCast(base)
if not printer:
raise RuntimeError("Invalid proxy")
else:
start=time.time()
res=printer.analysis1(imgname,data,"")
end=time.time()
spendtime=end-start
print '********************spend time is %s**************************'%(spendtime)
returnjson = res.json
print returnjson
调用Ice.initialize初始化Ice run time
获取远程服务的代理。在communicator上调用stringToProxy创建一个代理,带参数分别为对象标识符、ip和端口
stringToProxy返回的代理类型是Ice::ObjectPrx,是接口和类的继承树上的根节点。要调用
AE.AnalysisEnginePrx.checkedCast(base)向下转换,这个checked方法会发送一条消息给服务器:如果是,这个调用会返回一个AE.AnalysisEnginePrx类型的代理,否则,如果代理表示是其他的类型,这个调用会返回None