ModuleNotFoundError:没有名为“ web_interface”的模块

问题描述

试图将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"

即使导出python脚本的文件夹位置,我仍然有错误

export PYTHONPATH=$PYTHONPATH:/opt/nvidia/deepstream/deepstream-5.0

有什么问题吗?

解决方法

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

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

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