嵌入式python问题

嵌入式python问题,python,c++,Python,C++,我不熟悉Python和嵌入式Python 当试图从C++运行一些基本的Python命令时,我的一些导入似乎不工作于C++,但是当我从Python shell运行它们时,它们确实起作用。 这是我试图运行的基本指令 import sys sys.path.insert(0, 'c:/svapp/') sys.path.insert(0, 'c:/svapp/test') from common import baseaccess from debug.domains.pm import pm_t

我不熟悉Python和嵌入式Python

当试图从C++运行一些基本的Python命令时,我的一些导入似乎不工作于C++,但是当我从Python shell运行它们时,它们确实起作用。 这是我试图运行的基本指令

import sys
sys.path.insert(0, 'c:/svapp/')
sys.path.insert(0, 'c:/svapp/test')


from common import baseaccess
from debug.domains.pm import pm_tools
<我的C++文件中,看起来像这样:

int main(){

    Py_SetProgramName("myPythonProgram");
    Py_Initialize();
    PyRun_SimpleString("import sys,os");
    PyObject *sys_path = PySys_GetObject("path");

    PyList_Append(sys_path, PyString_FromString("c:\\svapp"));
    PyList_Append(sys_path, PyString_FromString("c:\\svapp\\test"));
    PyObject * commonModule = PyImport_ImportModule("common");
    PyObject * debugDomainsModule = 
    PyImport_ImportModule("debug.domains.pm.pm_tools");

}
普通模块似乎加载得很好,但当我尝试加载debug.domains.pm.pm_工具时,它似乎导入了一些内部导入

错误跟踪以以下内容结束:

文件“C:\Python27\lib\site packages\namednodes\uuuu init\uuuuu.py”,第30行,在 从…起导入设置 导入错误:无法导入名称设置

你能给我指一下正确的方向吗? 为什么只有嵌入式C++应用程序? 提前感谢您提供的任何帮助。

  • 在初始化之前调用
  • Py\u初始化之前设置为
    1

windows上的
Py_SetPath
使用
作为路径分隔符。在其他平台上,它是

不确定pm_工具是什么,但是,如果它是一个符号而不是一个包,则可能是由于导入它的方式不同。在一种情况下,您使用导入,在另一种情况下,您使用“from”,其行为方式类似但不同谢谢您的评论。我发现问题是由于一些python本机导入需要argv['']参数造成的。在将此参数添加到sys.path之后,一切都像一个符咒一样工作。写下答案如何?可能有人会从中受益。显然,正如我在前面的回答中提到的,这是导致python2.7 namednodes包行为不端的部分:PyRun_SimpleString(“sys.argv=[''”);将这一行添加到我的嵌入式代码中修复了这个问题。