您当前的位置: 首页 >  Python

柳鲲鹏

暂无认证

  • 1浏览

    0关注

    4642博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

柳鲲鹏 发布时间:2019-03-21 12:24:07 ,浏览量:1

  之前使用的是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);

    ......
}

 

关注
打赏
1665724893
查看更多评论
立即登录/注册

微信扫码登录

0.0599s