考虑一下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。
谢谢
赛迪
这可能是您将参数传递给
check_output()
的方式,请尝试以下操作:但是} 使其工作。你知道吗
mylibs.prx
位置的相对路径可能仍然是一个问题。您可以在调用check_output()
之前调用^{相关问题 更多 >
编程相关推荐