当我想使用Python脚本编译用C ++编写的代码在x目录中运行“make”时,我一直遇到错误。编译代码大约需要几秒钟,因此我使用时间模块让脚本休眠60秒以完成编译代码。
以下是代码:
from subprocess import call
from time import sleep
def make_ut_adsmain():
os.system("make ../../ads/main/unittest")
# call(["ls", "-l"])
sleep(60)
make_ut_adsmain()
# Run other functions when compiled...
错误
make: *** No rule to make target `../../ads/main/unittest'. Stop.
代码永远不会真正编译,因为其余的代码依赖于永远不会创建的日志文件。请指导我。
答案 0 :(得分:2)
我实际上已经弄明白并且能够使用以下代码运行构建过程:
import subprocess
from time import sleep
def make_ut_adsmain():
subprocess.Popen(["make"], stdout=subprocess.PIPE, cwd="../../ads/main/unitest")
sleep(60)
make_ut_adsmain()
请注意,以前的解决方案仅在您需要绕过错误时才有效。正确的方法如下。查看@tdelaney评论并阅读有关python docs https://docs.python.org/2/library/subprocess.html
的更多信息import subprocess
from time import sleep
def make_ut_adsmain():
subprocess.check_all(["make"], cwd="../../ads/main/unitest")
make_ut_adsmain()