如何从c++调用python

2022-02-22 00:00:00 python raspberry-pi c++

我是Python新来者。我尝试这样从c++调用python脚本(在Raspberry PI中)。

std::string pythonCommand = "python Callee.py ""+a+"" "+b;
int res = system(pythonCommand.c_str());

运行后收到此消息。

python: can't open file 'Callee.py': [Errno 2] No such file or directory

但我可以使用命令行成功运行Callee.py,并且这两个文件存储在同一目录中。

我错过了什么?


解决方案

您可能正在某个陌生的目录(即,与您预期的目录不同的其他目录中)运行Python解释器(和您的python Callee.py命令)。

您可以在调用system(3)之前使用getcwd(3)查找当前工作目录。

您可以使用chdir(2)系统调用(在调用system之前)将目录更改为适当的目录。或许请参阅this。

我建议您同时阅读Advanced Linux Programming

另请阅读关于Extending and Embedding the Python Interpreter;但如果您需要嵌入某些解释器,请同时考虑Guile&;Lua。

相关文章