cmd运行exe无法从Python运行

2024-09-27 23:17:20 发布

您现在位置:Python中文网/ 问答频道 /正文

考虑一下Win7机器上的部分Python代码(Python2.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 Compiler Technologies\adsp2-12R2\bin\WINbin\chessmk.exe ".\..\..\..\dev\lib\adsp2\mylibs.prx -r -s

我能在家里做到这一点命令行壳体组件

%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)

但是,我还不能为Python编写类似的代码,使用相对路径和工具路径变量。 例如

cmd = 'toolPath+"\\chessmk.exe" ".\\..\\..\\..\\dev\\lib\\adsp2\\mylibs.prx" -r -s'
subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=False)

给出错误:

WindowsError: [Error 2] The system cannot find the file specified

以下操作也不起作用:

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。
谢谢
赛迪


Tags: devcmdtargetbinlibfilesprogramexe
1条回答
网友
1楼 · 发布于 2024-09-27 23:17:20

这可能是您将参数传递给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位置的相对路径可能仍然是一个问题。您可以在调用check_output()之前调用^{}使其工作。你知道吗

相关问题 更多 >

    热门问题