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

universee 2007-08-27 08:01:12
C++调用python,PyImport_ImportModule|PyObject_GetAttrString出错,高人帮忙,没分了,555


#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
...全文
124 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
iambic 2007-08-28
  • 打赏
  • 举报
回复
竟然在这个版看到universee!
xyzxyz1111 2007-08-28
  • 打赏
  • 举报
回复
咋老有人犯这个问题呢?
就不能把test.py换个别的模块名试试?
test是系统模块

NAME
test - # Dummy file to make this directory a package.

FILE
/opt/Python-2.5.2/lib/python2.5/test/__init__.py

37,721

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧