Cax*_*ton 33 python subprocess python-3.4
我试图从python解释器中使用子进程调用python文件"hello.py".但我无法解决此错误.[Python 3.4.1].
import subprocess
subprocess.call(['hello.py', 'htmlfilename.htm'])
Traceback (most recent call last):
File "<pyshell#42>", line 1, in <module>
subprocess.call(['hello.py', 'htmlfilename.htm'])
File "C:\Python34\lib\subprocess.py", line 537, in call
with Popen(*popenargs, **kwargs) as p:
File "C:\Python34\lib\subprocess.py", line 858, in __init__
restore_signals, start_new_session)
File "C:\Python34\lib\subprocess.py", line 1111, in _execute_child
startupinfo)
OSError: [WinError 193] %1 is not a valid Win32 application
Run Code Online (Sandbox Code Playgroud)
除了使用子进程之外,还有"使用参数调用python脚本"的替代方法吗?提前致谢.
Dav*_*nan 28
错误很清楚.该文件hello.py
不是可执行文件.您需要指定可执行文件:
subprocess.call(['python.exe', 'hello.py', 'htmlfilename.htm'])
Run Code Online (Sandbox Code Playgroud)
您需要python.exe
在搜索路径上可见,或者您可以将完整路径传递给运行调用脚本的可执行文件:
import sys
subprocess.call([sys.executable, 'hello.py', 'htmlfilename.htm'])
Run Code Online (Sandbox Code Playgroud)
Python安装程序通常会在系统中注册.py文件.如果你明确地运行shell,它可以工作:
import subprocess
subprocess.call(['hello.py', 'htmlfilename.htm'], shell=True)
# --- or ----
subprocess.call('hello.py htmlfilename.htm', shell=True)
Run Code Online (Sandbox Code Playgroud)
您可以在命令行上检查文件关联
C:\>assoc .py
.py=Python.File
C:\>ftype Python.File
Python.File="C:\Python27\python.exe" "%1" %*
Run Code Online (Sandbox Code Playgroud)
当我忘记shell=True
在subprocess.call
.
subprocess.call('python modify_depth_images.py', shell=True)
Run Code Online (Sandbox Code Playgroud)
要在不与其交互的情况下运行外部命令,例如使用
os.system()
,请使用该call()
函数。Run Code Online (Sandbox Code Playgroud)import subprocess Simple command subprocess.call(['ls', '-1'], shell=True)
归档时间: |
|
查看次数: |
76073 次 |
最近记录: |