cmd运行exe无法在Python中运行

用户915783

考虑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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章