Python(Portable 2.5)子进程报告问题“WindowsError:[错误3]系统找不到指定的路径”

时间:2011-06-20 18:20:57

标签: python subprocess portability popen

我正在使用python,并且代码在非便携版本中都运行良好。因为我需要在某些不属于我的计算机上运行程序,而这些计算机没有安装python或者这样的选项可用。 我使用便携式python代替。但是,以前的代码现在运行良好,报告错误“WindowsError:[错误3]系统无法找到指定的路径”。我在电脑上查了一下。它运行顺利,没有上述错误。任何人都可以提供线索吗?

我使用的cmd是:

p = subprocess.Popen(self.cmdStr,shell = False,stdout = subprocess.PIPE,stderr = file)

我正在将stderr重定向到我指定的文件。

我也在网上搜索。似乎存在“子进程PATH语义和可移植性”的问题。我不确定这是不是这个原因。请帮忙。谢谢。

3 个答案:

答案 0 :(得分:1)

啊,问题出在cmdStr变量中。您必须使用绝对路径,否则用户正在下运行的进程具有适当设置的PATH系统变量。或者你有shell = False,这可能会导致子进程模块出现问题。查看文档以了解有关路径等的问题。

答案 1 :(得分:0)

'cmd / c cmdstr'可以在Windows上正常运行吗?

答案 2 :(得分:0)

subprocess.Popen(r“C:\ Python27 \ python.exe”,shell = True)可以正常工作。