在C++应用中包含第三方Python模块
我正在尝试构建一个应用程序来解析C++中的NETCDF4文件。 我所做的: 成功解析python脚本中的文件。 我需要帮助的是: 包括我的python脚本作为一个模块。当我运行C++程序时,它抱怨它不能访问NUMPY。 据我所知: 我通过复制NcCDF4.Pyd文件来修复NETCDF4中的相同问题,其中我的C++可执行文件位于其中,但无法找到NUMPY。相等的在C++应用中包含第三方Python模块,python,c++,python-2.7,numpy,module,Python,C++,Python 2.7,Numpy,Module,我正在尝试构建一个应用程序来解析C++中的NETCDF4文件。 我所做的: 成功解析python脚本中的文件。 我需要帮助的是: 包括我的python脚本作为一个模块。当我运行C++程序时,它抱怨它不能访问NUMPY。 据我所知: 我通过复制NcCDF4.Pyd文件来修复NETCDF4中的相同问题,其中我的C++可执行文件位于其中,但无法找到NUMPY。相等的 谢谢你的建议。欢迎来到社区!我希望我能正确地理解这个问题——它是否将Python模块导入C++?如果是这样,请尝试以下教程: 基本上,要
谢谢你的建议。欢迎来到社区!我希望我能正确地理解这个问题——它是否将Python模块导入C++?如果是这样,请尝试以下教程: 基本上,要解释一下,不要使用代码转换或翻译-这是不必要的复杂。只需使python代码与C代码通信,如下所示。感谢网站上面的代码,我的评论
#include <Python.h> //get the scripts to interact
int main(int argc, char *argv[])
{
PyObject *pName, *pModule, *pDict, *pFunc, *pValue; //Arguments that are required.
if (argc < 3)
{
printf("Usage: exe_name python_source function_name\n");
return 1;
}
// Allow your program to understand python
Py_Initialize();
// Initialize Name
pName = PyString_FromString(argv[1]);
// Import the module from python
pModule = PyImport_Import(pName);
// pDict is a borrowed reference
pDict = PyModule_GetDict(pModule);
// same situiation as above
pFunc = PyDict_GetItemString(pDict, argv[2]);
if (PyCallable_Check(pFunc))
{
PyObject_CallObject(pFunc, NULL);
} else
{
PyErr_Print();
}
// Tidy Everything Up.
Py_DECREF(pModule);
Py_DECREF(pName);
// End interpreter
Py_Finalize();
return 0;
}
不过,我建议您阅读上面的教程
希望这有帮助 谢谢你的回复。我实际上是在看那个教程。在我的例子中,PyImport\u ImportpName调用似乎失败了。我有一个temp.py文件,其中包含一些从netcdf文件检索温度的代码。temp.py有一个与教程一样定义的函数,但它也有一个从netcdf4导入数据集导入的函数,netcdf模块导入numpy,这导致了错误,因为找不到numpy。您以前见过这种类型的错误吗?