在C++中嵌入 Python 的错误:无法读取内存

Error of embedding Python in C++ : unable to read memory

本文关键字:读取 内存 错误 C++ Python      更新时间:2023-10-16

我正在尝试在VS C++中嵌入Python,但是遇到了此错误:无法读取内存。C++代码是

Py_Initialize();
PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append('./')");
pName = PyBytes_FromString("Test001");
//pName = PyBytes_FromString(argv[1]);
pModule = PyImport_Import(pName);

pName 包含"无法读取内存"的属性,这两个属性都用于注释的行。因此,PyImport_Import不起作用,结果 pModule 为 NULL。我在环境变量中设置了 PYTHONPATH,并将 argv[1] 设置为 Test001。文件 Test001.py 与.exe位于同一文件夹中。我看不到问题,我认为配置存在一些问题。

提前感谢您的帮助!

我已经使用Visual Studio 2013和Python 2.7成功尝试了您的代码。我遇到的唯一问题是调试中的链接需要 python27_d.lib,我必须使用以下命令解决问题:

#ifdef _DEBUG
#undef _DEBUG
#include <python.h>
#define _DEBUG
#else
#include <python.h>
#endif

您还应该检查您链接到哪个版本的 python。