V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
weizn
V2EX  ›  问与答

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

  •  
  •   weizn · 2016-02-02 12:24:14 +08:00 · 1527 次点击
    这是一个创建于 3067 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我在 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

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1509 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 17:10 · PVG 01:10 · LAX 10:10 · JFK 13:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.