C++调用python,PyImport_ImportModule|PyObject_GetAttrString出错,高人帮忙,没分了,555

universee universee 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
#Filename test.py
you = "world!"
print "aaaaaaaa"
def Hello():
print "Hello, world!"
Hello()



#include "stdafx.h"
//#include <python.h>
int main()
{
Py_Initialize();

PyObject * pModule = NULL;
PyObject * pFunc = NULL;

pModule = PyImport_ImportModule("test");
//pModule = PyImport_ImportModule("test.py");
pFunc = PyObject_GetAttrString(pModule, "Hello");
//pFunc = PyObject_GetAttrString(pModule, "you");
PyEval_CallObject(pFunc, NULL);

Py_Finalize();

return 0;
}



test.py应该放在哪呢?
我把py文件在python25/lib, projectdir/debug和projectdir下各放一份,
调试看到,pModule 不为0了,pFunc 还是0。




为了解决没有python25_d.lib的问题,我在stdafx.h里有如下设定
stdafx.h:

#pragma once
#include <afx.h>
#include <afxcmn.h>

#ifdef _DEBUG
#undef _DEBUG
#include "E:\software\Python25\include\Python.h"
#define _DEBUG
#else
#include "E:\software\Python25\include\Python.h"
#endif
...全文

相关推荐

评论 6
收藏 已收藏
分享
返回顶部