嵌入式python问题
我不熟悉Python和嵌入式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
当试图从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=[''”);将这一行添加到我的嵌入式代码中修复了这个问题。