解決策:すべてが正しい、Python3はPyImport_Import()を実行し、常にNULLを返します



Solution Everything Is Correct



以前にPython2.7を使用しましたが、正常に動作します。結果はPython3.5であり、実行はnullを返します。これはどうですか?以下の条件を満たしています。

  • 実行可能ディレクトリにはファイルがあります。
  • PyCharmは正常に実行できます。
  • Python3は、コマンドラインから通常どおり実行することもできます。
  • では、他に何がうまくいかない可能性がありますか?

オンラインで検索しましたが、解決策が見つかりませんでした。後で、誰かが違った書き方をしているのを見て、それを試してみて、最終的に正しい結果を見つけました。ここでみんなと共有してください:



int main(int argc, char** argv) { Py_Initialize() init_numpy() if ( !Py_IsInitialized() ) { return -1 } / / Import the current path 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) ...... }