在C ++中嵌入python脚本

问题描述

我有一个名为@foreach ($usernames as $username) <td>{{ $username }}</td> @endforeach的python脚本

web_interface.py

尝试以c ++程序的身份调用该脚本

import urllib.request
import ssl
import suds.transport.http
from suds.client import Client

class UnverifiedHttpsTransport(suds.transport.http.HttpTransport):
  def __init__(self,*args,**kwargs):
     super(UnverifiedHttpsTransport,self).__init__(*args,**kwargs)
  def u2handlers(self):
     handlers = super(UnverifiedHttpsTransport,self).u2handlers()
     context = ssl.create_default_context()
     context.check_hostname = False
     context.verify_mode = ssl.CERT_NONE
     handlers.append(urllib.request.HTTPSHandler(context=context))
     return handlers

url="https://xxxxxx.com/datamanagement.asmx?WSDL"
client = Client(url,transport=UnverifiedHttpsTransport())

def ReadDatatest():
  result = client.service.ReadTestData()
  return result

def ReadGridData():
  result = client.service.ReadGridData()
  return result

def main():
  ReadGridData()

if __name__ == "__main__":
  main()

总是有 Py_Initialize(); pName = PyUnicode_DecodeFSDefault("web_interface"); pModule = PyImport_Import(pName); Py_DECREF(pName); if (pModule != NULL) { pFunc = PyObject_GetAttrString(pModule,"ReadDataTest"); if (pFunc && PyCallable_Check(pFunc)) { pString=PyObject_CallObject(pFunc,NULL); if(pString != NULL) { printf("Result of call: %s\n",pString); Py_DECREF(pString); } } Py_XDECREF(pFunc); Py_DECREF(pModule); }else{ printf("Can't call python \n"); } Py_FinalizeEx();

有什么问题吗?

编辑: 称为python脚本的位置位于计时器回调函数内部。 将$ PYTHONPATH导出到python脚本所在的文件夹时,错误

"Can't call python \n"

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)