我是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_tools时,似乎导入了一些内部导入。
错误的痕迹以:
结束你能指出我正确的方向吗? 为什么这只是通过嵌入式C ++应用程序发生的?文件“C:\ Python27 \ lib \ site-packages \ namednodes__init __。py”,第30行,在 来自。导入设置 ImportError:无法导入名称设置
提前感谢您提供的任何帮助。
答案 0 :(得分:0)
Py_Initialize
前致电Py_SetPath
1
之前将Py_IgnoreEnvironmentFlag
设置为Py_Initialize
Py_SetPath
使用;
作为路径分隔符。在其他平台上为: