通过Exec在C中运行Python脚本?

通过Exec在C中运行Python脚本?,python,c,bash,exec,Python,C,Bash,Exec,我想以以下方式在C中运行python脚本:(我已经分叉了) 在bash中,我可以成功运行 python my_script.py test (test是python脚本的参数) 然而,程序输出 my_script.py: can't open file 'test': [Errno 2] No such file or directory 我做错了什么3啊,我想出来了。 应该是: execlp("python", "python", "my_script.py", "test", (char

我想以以下方式在C中运行python脚本:(我已经分叉了)

在bash中,我可以成功运行

python my_script.py test
(test是python脚本的参数)

然而,程序输出

my_script.py: can't open file 'test': [Errno 2] No such file or directory
我做错了什么3

啊,我想出来了。 应该是:

execlp("python", "python", "my_script.py", "test", (char*) NULL);
按照惯例,第一个参数是可执行文件的文件名。我以为这是自动通过的,但显然不是

啊,我知道了。 应该是:

execlp("python", "python", "my_script.py", "test", (char*) NULL);

按照惯例,第一个参数是可执行文件的文件名。我以为这是自动通过的,但显然不是

错误是你的答案。给出
“my_script.py”
的完整路径当前目录在两种情况下是否相同?是。它试图打开“测试”,但我从未告诉过它。它应该作为一个参数通过测试。您可以验证当前目录是否相同,即从C中设置它吗?此外,请尝试对Python的路径进行编码,以验证Python在以这种方式运行时是否能够正确运行。错误是您的答案。给出
“my_script.py”
的完整路径当前目录在两种情况下是否相同?是。它试图打开“测试”,但我从未告诉过它。它应该通过测试作为一个参数。你能验证当前目录是否相同,即通过在C++中设置它吗?也可以尝试将Python的路径编码,以验证Python在以这种方式运行时是否正确运行。但我不完全确定。只是FIY,没有必要投null,至少在C中。我假设C++也是一样的,但我不完全确定。