[英]cmd to run exe not working from Python
考慮Win 7機器上的Python代碼(Python 2.7)的一部分,
toolPath="C:\\Program Files (x86)\\Target Compiler Technologies\\adsp2-12R2\\bin\\WINbin"
這是從python腳本下執行的
C:\\ dev \\ bin \\ toplevel \\ python
現在,我需要執行一個命令來運行(編譯並構建一個DSP庫,.prx是該庫的項目文件),如下所示:
C:\\ Program Files(x86)\\ Target編譯器技術\\ adsp2-12R2 \\ bin \\ WINbin \\ chessmk.exe“。\\ .. \\ .. \\ .. \\ dev \\ lib \\ adsp2 \\ mylibs.prx -r -s
我能夠在cmd.exe shell中做到這一點
%toolPath%\chessmk.exe "..\..\..\dev\lib\adsp2\mylibs.prx" -r -s
我可以在Python中做與
cmd = '"C:\\Program Files (x86)\\Target Compiler Technologies\\adsp2-12R2\\bin\\WINbin\\chessmk.exe" "C:\\SVN\\ASROmni\\trunk1\\\dev\\lib\\adsp2\\mylibs.prx" -r'
subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=False)
但是,我無法使用相對路徑和使用toolpath變量為Python編寫類似的代碼。 例如,
cmd = 'toolPath+"\\chessmk.exe" ".\\..\\..\\..\\dev\\lib\\adsp2\\mylibs.prx" -r -s'
subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=False)
給出錯誤:
WindowsError:[錯誤2]系統找不到指定的文件
以下也行不通:
cmd = '"C:\\Program Files (x86)\\Target Compiler Technologies\\adsp2-12R2\\bin\\WINbin\\chessmk.exe" ".\\..\\..\\..\\dev\\lib\\adsp2\\mylibs.prx" -r'
subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=False)
更新:從其中一項評論中,我嘗試了
cmd = os.path.join(toolPath,"chessmk.exe")+' C:\\SVN\\ASROmni\\trunk1\\\dev\\lib\\adsp2\\mylibs.prx -r'
它有效,但是相對路徑之一
cmd = os.path.join(toolPath,"chessmk.exe")+' .\\..\\..\\..\\dev\\lib\\adsp2\\mylibs.prx -r'
仍然沒有。
任何幫助。(這是我第一次使用python,所以請多多包涵)
請注意,cmd應該從Python內部運行,而不是調用shell = True。
謝謝
塞迪
可能是您將參數傳遞給check_output()
,請嘗試以下操作:
toolPath = ('"C:\\Program Files (x86)\\Target Compiler Technologies\\'
'adsp2-12R2\\bin\\WINbin\\chessmk.exe"')
cmd = [toolPath, '"..\..\..\dev\lib\adsp2\mylibs.prx"', '-r' '-s']
subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=False)
但是, mylibs.prx
位置的相對路徑可能仍然是一個問題。 您可以通過在調用os.chdir()
之前立即調用check_output()
來使其工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.