我计划使用checkov python包生成舵机图表的报告,然后用C程序读取输出。但是,当我尝试使用system()运行包时,我会得到一个错误:sh: 1: checkov: not found
我可以将来自终端的命令简单地作为checkov使用,并且它可以工作。Python在path上,包也是如此。
我在我的c程序中使用的完整命令是:
system("checkov -d /workspace/testdir -o json");我尝试过使用python3.8 -m,但这也会返回一个错误,因为这个checkov不是脚本。
我该如何解决这个问题?我使用Python3.8在Ubuntu20.04上运行这个程序。
编辑:按照@fukanchik的建议,我使用了system("ps $$")来检查shell和系统(“$PATH”)的路径。原来,c程序使用sh,而我的默认终端是bash。此外,/home/epodegrid/.local/bin不在sh的路径上,这将导致错误。当我使用C程序中的system()输出bash的路径时,路径也会丢失。那我该怎么解决这个问题?
编辑2 : --在更多的评论中,当我在Ubuntu终端中编译cmake程序时,路径似乎被添加了,并且运行良好,但是不能使用when的run/build选项。
编辑3:不重复的问题是even没有为终端设置环境变量,即使程序是用WSLUbuntu20.04编译的。在Ubuntu终端中,路径是正确设置的,但是,当我使用Clion的工具运行system()时,没有设置路径。
发布于 2022-04-03 16:43:32
尝试将整个路径名添加到checkof中以查看它,这是路径问题。
https://stackoverflow.com/questions/71727808
复制相似问题