在C++应用中包含第三方Python模块

在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++?如果是这样,请尝试以下教程: 基本上,要

我正在尝试构建一个应用程序来解析C++中的NETCDF4文件。 我所做的:

成功解析python脚本中的文件。 我需要帮助的是:

包括我的python脚本作为一个模块。当我运行C++程序时,它抱怨它不能访问NUMPY。 据我所知:

我通过复制NcCDF4.Pyd文件来修复NETCDF4中的相同问题,其中我的C++可执行文件位于其中,但无法找到NUMPY。相等的
谢谢你的建议。

欢迎来到社区!我希望我能正确地理解这个问题——它是否将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。您以前见过这种类型的错误吗?