解决办法:一切都正确,Python3执行PyImport_Import()一直返回NULL

简介: 解决办法:一切都正确,Python3执行PyImport_Import()一直返回NULL

之前使用的是Python2.7,功能正常.结果到了Python3.5,执行就返回空.这是怎么回事?以下条件都符合.


执行目录有文件.

PyCharm可以正常执行.

命令行下python3也可以正常执行.

那么还有什么可能出错?

 在网上一通搜索,也没找到解决办法.后来看到有人不同的写法,试了一下,终于找到了正确结果.这里分享给大家:


int main(int argc, char** argv)
{
    Py_Initialize();
    init_numpy();
    if ( !Py_IsInitialized() )  
    {  
        return -1;
    }
    //导入当前路径
    PyRun_SimpleString("import  sys");
    PyRun_SimpleString("sys.path.append('./')");
    PyRun_SimpleString("print(sys.path)");
#if PYTHON2_7
    PyObject* m_pPythonName   = PyString_FromString(pPythonPath);
    if (m_pPythonName == NULL)
    {
        GH_LOG_INFO("PyBytes_FromString() error!");
        return  -1;
    }
    m_pPythonModule = PyImport_Import(m_pPythonName);
#else
    m_pPythonModule = PyImport_Import(PyUnicode_FromString(pPythonPath));
#endif
    if (!m_pPythonModule)
    {
       GH_LOG_INFO("PyImport_Import() error!");
       return  -1;
    }
    m_pPythonDict = PyModule_GetDict(m_pPythonModule);
    ......
}
目录
相关文章
|
存储 网络协议 Java
SpringBoot在自定义实现类中调用service层等Spring其他层报错为null的解决办法
SpringBoot在自定义实现类中调用service层等Spring其他层报错为null的解决办法
389 0
JSONObject自动隐藏为null的属性的解决办法
JSONObject自动隐藏为null的属性的解决办法
133 0
解决办法一:GetProcAddress函数返回值总为NULL
解决办法一:GetProcAddress函数返回值总为NULL
146 0
错误解决办法:‘NULL’ was not declared in this scope
错误解决办法:‘NULL’ was not declared in this scope
228 0
env->FindClass()为NULL的一种解决办法
env->FindClass()为NULL的一种解决办法
85 0
|
Java Spring
EnhancerBySpringCGLIB 获取getParameterAnnotations为null的解决办法
EnhancerBySpringCGLIB 获取getParameterAnnotations为null的解决办法
|
18天前
|
机器学习/深度学习 SQL 关系型数据库
【MySQL进阶之路丨第十一篇】一文带你精通MySQL NULL值处理、正则表达式
【MySQL进阶之路丨第十一篇】一文带你精通MySQL NULL值处理、正则表达式
44 0
|
18天前
|
SQL 关系型数据库 MySQL
总结 vue3 的一些知识点:MySQL NULL 值处理
总结 vue3 的一些知识点:MySQL NULL 值处理
|
18天前
|
SQL 关系型数据库 MySQL
MySQL NULL 值处理
MySQL NULL 值处理
|
10天前
|
SQL 关系型数据库 MySQL
实时计算 Flink版产品使用合集之从MySQL同步数据到Doris时,历史数据时间字段显示为null,而增量数据部分的时间类型字段正常显示的原因是什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。