c++调用python问题请教:py文件找不到

xiuxiu1017 2013-01-16 03:39:45
贴出我的代码:
#helloworld.py
def Hello():
print"Hello, world!"

cpp文件
{
Py_Initialize();
PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append('./')");
PyObject * pModule = NULL;
PyObject * pFunc = NULL;
pModule =PyImport_ImportModule("helloworld");
if (!pModule)
{
int ntest=0;
}
pFunc= PyObject_GetAttrString(pModule, "Hello");
PyEval_CallObject(pFunc, NULL);
Py_Finalize();
}

c++程序中 helloworld.py和cpp及h文件放在同一路径下,exe文件在另外的路径中
调试程序,进入到红色的部分,找不到py文件

哪里出了错误呢?
请指教
...全文
921 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
safirst 2013-02-18
  • 打赏
  • 举报
回复
引用 7 楼 xiuxiu1017 的回复:
找到问题了 1 py文件注意格式 2 这两行不要 PyRun_SimpleString("import sys"); PyRun_SimpleString("sys.path.append('./')"); 3 py文件与exe同路径,项目设置中设置exe输出路径:项目配置,调试,工作目录
条件2和3我都满足,请问py文件格式是指什么?
ChongQingJin28 2013-01-17
  • 打赏
  • 举报
回复
第一、

你可以试试这一句:

pModule = PyImport_Import(PyUnicode_FromString("hello"));

好像C的string不能被python使用


第二、

至于路径的问题:直接放在C:\Python32\Lib里面就好了吧!


第三、

如果你想用system的方式:可以百度一个关于argparse的例子
angel_su 2013-01-17
  • 打赏
  • 举报
回复
查查设置,当前工作路径与helloworld.py所在位置必须要一致。或者直接跑exe,这样按1楼的方式,只要把文件摆在一起就应该没问题...
xiuxiu1017 2013-01-17
  • 打赏
  • 举报
回复
引用 1 楼 bugs2k 的回复:
试试helloworld.py和exe文件放在同一路径下
改了路径,还是不行。报错依旧 我现在改成了“system("python helloworld.py");”,这种用法怎么传参进去? 求指导
xiuxiu1017 2013-01-17
  • 打赏
  • 举报
回复
调试进入到 if (!pModule) { int ntest=0; }
xiuxiu1017 2013-01-17
  • 打赏
  • 举报
回复
找到问题了 1 py文件注意格式 2 这两行不要 PyRun_SimpleString("import sys"); PyRun_SimpleString("sys.path.append('./')"); 3 py文件与exe同路径,项目设置中设置exe输出路径:项目配置,调试,工作目录
zjs100901 2013-01-16
  • 打赏
  • 举报
回复
进入到红色的部分
bugs2k 2013-01-16
  • 打赏
  • 举报
回复 1
试试helloworld.py和exe文件放在同一路径下

37,719

社区成员

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

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