首页 新闻 搜索 专区 学院

求助! C++中嵌入Python,无法导入自定义模块

0
悬赏园豆:30 [已关闭问题] 关闭于 2013-01-01 20:06

      遇到个问题,需要在C++中调用python函数,查了点资料先写了个测试函数,如下: <call_python.cc>

#include <python2.7/Python.h>
#include <cstdio>

int main(int argc, char* argv[]) {
  Py_SetProgramName(argv[0]);
  Py_Initialize();
  PyObject *pName, *pModule;
  pName = PyString_FromString("pyAlgo"); //pyAlgo为当前目录pyAlgo.py
  pModule = PyImport_Import(pName);
  if (pModule == NULL) printf("Error: Import!\n");  
  if (pName) Py_DECREF(pName);
  if (pModule) Py_DECREF(pModule);
  Py_Finalize();
  return 0;
}

     上面的代码运行时总是输出:

            Error: Import!
也就是这个自定义的Python模块没导入成功! 但是测试导入python内建模块如 sys, time之类都能成功导入, 为何自定义的模块无法导入呢?怀疑是模块查找路径问题, 可是当前目录模块不应该啊。

编译如下:
PYTHON_HOME=/usr/local/include/python2.7/
PYTHON_LIBDIR=-L $(PYTHON_HOME)
PYTHON_INCLUDE=-I $(PYTHON_HOME)
$(CXX) $(LFLAGS) -o common_program $(OBJ) $(LIBS) $(PYTHON_INCLUDE) $(PYTHON_LIBDIR) -lpython2.7 -ldl -lpthread -lutil -lm -Xlinker -export-dynamic
哪位大虾知道的望不吝赐教,万分感谢!
Newwayy的主页 Newwayy | 初学一级 | 园豆:190
提问于:2013-01-01 12:19
< >
分享
所有回答(1)
0

将当前目录加入path中 

PyRun_SimpleString("sys.path.append('./')");

pModule = PyImport_ImportModule("pytest");

Newwayy | 园豆:190 (初学一级) | 2013-01-01 20:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册