解决办法:一切都正确,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);
    ......
}
目录
相关文章
|
Python Windows
【错误记录】Mac 中 Python 报错 ( ERROR: Could not build wheels for numpy which use PEP 517 | 问题未解决 | 问题记录 )(一)
【错误记录】Mac 中 Python 报错 ( ERROR: Could not build wheels for numpy which use PEP 517 | 问题未解决 | 问题记录 )(一)
1996 0
【错误记录】Mac 中 Python 报错 ( ERROR: Could not build wheels for numpy which use PEP 517 | 问题未解决 | 问题记录 )(一)
|
3月前
|
Python Windows
Python:执行py命令,提示: Can‘t find a default Python.
Python:执行py命令,提示: Can‘t find a default Python.
|
7月前
|
数据安全/隐私保护 索引 Python
「Python系列」Python OS文件/目录方法、Python错误和异常
Python的`os`模块提供了与操作系统交互的方法,包括文件和目录的操作。
67 1
|
7月前
|
Python
在Python中,如何判断文件是否存在
在Python中,如何判断文件是否存在
78 0
|
7月前
|
Python
python while true用法
python while循环语句的一般形式是while后面跟一个条件表达式,当该表达式的返回值为True,或经过布尔转换会返回True,比如1转换为bool布尔类型会为True,那么就执行一次while的循环。while True,即直接把表达式设置为True,那么无论如何,代码都将进行一次while的循环,直到遇到退出的条件,而且如果没有退出循环的条件,那么将无限循环下去。
151 1
26.从入门到精通:Python3 OS 文件/目录方法 Python3 错误和异常 语法错误 异常
26.从入门到精通:Python3 OS 文件/目录方法 Python3 错误和异常 语法错误 异常
|
Python
Python 中对象的比较操作 == 与 is
Python 中对象的比较操作 == 与 is
|
Python Windows
解决python_page打开错误:找不到文件‘python3‘
PAGE是一个拖放式GUI生成器,与Visual Basic相似。它允许人们轻松创建包含选择的Tk和ttk小部件的GUI窗口。
124 0
解决python_page打开错误:找不到文件‘python3‘
|
Java Android开发 Python
java 执行python脚本(出现由于python导入了其他包而无法成功执行的问题)
java 执行python脚本(出现由于python导入了其他包而无法成功执行的问题)
535 0
java 执行python脚本(出现由于python导入了其他包而无法成功执行的问题)
|
Python
解决办法:一切都正确,Python3执行PyImport_Import()一直返回NULL
解决办法:一切都正确,Python3执行PyImport_Import()一直返回NULL
180 0