我目前有以下內(nèi)容:tf = Terraform()tf.init()tf.plan(capture_output=False)approve = {"auto-approve": True}print(tf.apply(capture_output=False, auto_approve=True, skip_plan=True,**approve))這工作得很好,但我需要把它放到一個子進程中。我試過以下方法:tf = Terraform()tf.init()tf.plan(capture_output=False)approve = {"auto-approve": True}subprocess.check_output(['tf.apply','capture_output','0', 'auto_approve','1', 'skip_plan','1','**approve'])但是,我收到錯誤消息:“'tf.apply' 未被識別為內(nèi)部或外部命令、可運行程序或批處理文件?!蔽铱梢詫⑸鲜鲛D(zhuǎn)換為子流程嗎?如果是這樣,怎么辦?
1 回答

慕運維8079593
TA貢獻1876條經(jīng)驗 獲得超5個贊
subprocess
執(zhí)行外部命令。相比之下,您正在嘗試執(zhí)行類似(但不完全是)Python 代碼。這根本行不通。
您可以做的是創(chuàng)建一個包含您的 Terraform 代碼的 Python 腳本并通過subprocess.check_output
. 但是,這僅在 Python 腳本完成時才有效。你不能像你的情況那樣執(zhí)行一個片段。
對于您可以執(zhí)行的操作的最小示例,請獲取原始腳本,將其另存為tf.py
并在 Python 中像這樣執(zhí)行它:
subprocess.check_output(['python', 'tf.py'])
添加回答
舉報
0/150
提交
取消