2012-06-03 30 views
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('....') 

如何管理得到这个运行?

非常感谢您的回复。

回答

2

该错误消息非常有意义 - 与subprocess一样,您只能启动可执行文件。所以,要解决它,你应该启动一个可执行文件。具体来说,你应该启动Python解释器并告诉它运行你的脚本。像

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

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

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

import testingosfile 

函数里面,但你可以打包的testingosfile.py有用的命令到一些功能。然后,你可以使用

import testingosfile 

你的主要脚本的顶部,只是调用该函数,只要你想打印的Hello World,并得到了用户的输入。

+0

太棒了!有用! :D(尽管如果你没有在PATH中,你确实需要提供解释器的完整路径)非常感谢! –

1

try subprocess.call(“myfile.ext”,shell = True)

相关问题