问题描述
试图将python嵌入C ++。 Python脚本是
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://axxxxest.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()
从C ++代码(testpython.cpp),它嵌入为
#include <stdio.h>
#include <Python.h>
//g++ -o test testpython.cpp -I /usr/include/python3.6 -L/usr/lib/python3.6/config-3.6m-aarch64-linux-gnu -lpython3.6m
int main( int argc,const char* argv[] )
{
PyObject *pName,*pModule,*pFunc;
Py_Initialize();
pName = PyUnicode_DecodeFSDefault("web_interface");
/* Error checking of pName left out */
pModule = PyImport_Import(pName);
Py_DECREF(pName);
if (pModule != NULL) {
printf("%s\n","OK");
}
else {
PyErr_Print();
fprintf(stderr,"Failed to load \"%s\"\n","web_interface");
return 1;
}
if (Py_FinalizeEx() < 0) {
return 120;
}
return 0;
}
我跑步时出现的错误是
./test
ModuleNotFoundError: No module named 'web_interface'
Failed to load "web_interface"
export PYTHONPATH=$PYTHONPATH:/opt/nvidia/deepstream/deepstream-5.0
有什么问题吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)