【问题标题】:Running Python Scripts in C via Exec?通过 Exec 在 C 中运行 Python 脚本?
【发布时间】:2014-01-26 18:09:22
【问题描述】:

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

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

在bash中,我可以成功运行

python my_script.py test

(test是python脚本的参数)

但是,程序输出

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

我做错了什么? :3

【问题讨论】:

  • 错误是你的答案。给出"my_script.py"的完整路径
  • 两种情况下当前目录是否相同?
  • 是的。它正在尝试打开“测试”,但我从未告诉过它。它应该作为参数通过测试。
  • 你能验证当前目录是否相同,即通过在 C 中设置它吗?
  • 另外,尝试对 Python 路径进行硬编码,以验证 Python 在以这种方式运行时是否能够正确运行。

标签: python c bash exec


【解决方案1】:

啊,我想通了。 应该是:

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

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

【讨论】:

  • 仅供参考,没有必要强制转换 NULL,至少在 C 中是这样。我认为 C++ 也是如此,但我不完全确定。
  • 或者可以使用system("python my_script.py arg1, arg2")
猜你喜欢
  • 2016-09-18
  • 2015-04-03
  • 1970-01-01
  • 1970-01-01
  • 2016-05-10
  • 2015-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多