考虑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。
由于
sedy
可能是您将参数传递给的方式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()
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句