1

所以我在使用 subprocess.call() 时遇到了问题,我想我可能只是说错了。我在用:

subprocess.call('testingosfile.py')

我得到了回溯:

Traceback (most recent call last):
  File "<pyshell#14>", line 1, in <module>
    subprocess.call('testingosfile.py')
  File "C:\Python27\lib\subprocess.py", line 493, in call
    return Popen(*popenargs, **kwargs).wait()
  File "C:\Python27\lib\subprocess.py", line 679, in __init__
    errread, errwrite)
  File "C:\Python27\lib\subprocess.py", line 893, in _execute_child
    startupinfo)
WindowsError: [Error 193] %1 is not a valid Win32 application

内容testingosfile.py是:

print "hello world!"
raw_input('....')

我如何设法让它运行?

预先感谢您的回复。

4

2 回答 2

2

错误消息非常有意义 - 使用subprocess,您只能启动可执行文件。因此,要修复它,您应该启动一个可执行文件。具体来说,您应该启动 Python 解释器并告诉它运行您的脚本。就像是

subprocess.call(['python.exe', 'testingosfile.py'])

应该可以工作,尽管您可能必须提供 Python 解释器的完整路径(我目前无法测试)。

但是,您是否考虑过导入testingosfile.py?每当您导入 Python 脚本时,该脚本中的所有命令都会运行。使用

import testingosfile

在函数内部执行命令会很糟糕,但是您可以将有用的命令打包testingosfile.py到某个函数中。然后,你可以使用

import testingosfile

在主脚本的顶部,只要您想打印 Hello World 并获取用户的输入,只需调用该函数即可。

于 2012-06-03T23:03:16.510 回答
1

尝试 subprocess.call("myfile.ext", shell=True)

于 2013-09-26T23:41:28.713 回答