从C程序使用system()运行python包返回错误



我计划使用checkov-python包生成helm图表的报告,然后读取输出,所有这些都使用C程序。然而,当我尝试用system((运行包时,我得到了一个错误:sh: 1: checkov: not found

我可以将来自终端的命令简单地用作checkov,并且它可以工作。Python正在运行,包也在运行。

我在c程序中使用的完整命令是:

system("checkov -d /workspace/testdir -o json");

我尝试过使用python3.8 -m,但也返回了一个错误,因为这个checkov不是脚本。

如何解决此问题?我在Ubuntu 20.04和Python3.8上运行这个。

编辑:根据@fukanchik的建议,我使用系统("ps$$"(检查shell和系统("$PATH"(的路径。原来c程序使用的是sh,而我的默认终端是bash。此外,/home/epodegrid/.local/bin不在sh的路径上,从而导致错误。当我在C程序中使用system((输出bash的PATH时,路径也丢失了。那么我该如何解决这个问题呢?

编辑2:经过更多的审查,当我在Ubuntu终端中编译cmake程序时,似乎添加了路径,并且运行良好,但不适用于clion的运行/构建选项。

编辑3:[不要重复问题]问题是Clion没有为终端设置环境变量,即使该程序是用WSL Ubuntu 20.04编译的。在Ubuntu终端中,路径设置正确,但是,当我使用Clion的工具运行system((时,路径没有设置。

尝试将整个路径名添加到checkof中,以便查看它—这是路径问题。

最新更新