问一个 C++调用 Python 出现找不到模块的问题。

2016-02-02 12:24:14 +08:00
 weizn

我在 C++中需要调用 Python 写的一些函数,按照步骤我先导入自己写的模块,代码如下:

getcwd(pwd,sizeof(pwd));

setenv("PYTHONPATH", ".:$PYTHONPATH", 0);
Py_Initialize();
PyEval_InitThreads();
PyEval_ReleaseLock();

PyRun_SimpleString("import sys");
sprintf(pyenv,"sys.path.append('%s')",pwd);
PyRun_SimpleString(pyenv);

PyRun_SimpleString("sys.path.append(\".\")");

PyRun_SimpleString("print sys.path");
pModule=PyImport_Import(PyString_FromString("1"));
if (!pModule)
{
    printf("import '%s' error\n","1");
}
else
{
    printf("import success.\n");
}

可奇怪的是我在 ubuntu 下测试一点问题都没有,模块能导入成功,可是在 Cent OS 下却提示找不到模块,也就是 PyImport_Import() 调用失败,可我看输出的环境变量中是成功添加了模块的搜索路径的,请问这是怎么回事?两个系统安装的都是 Python 2.7.6

1529 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/254991

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX