我正在尝试将 thsubprocess
模块与Popen
类一起使用来创建和运行进程。直到现在,我总能成功调用任何我想要的程序。
现在我正在尝试paraview
使用附加的python脚本作为参数调用(版本3.8.1),如下所示:
paraview --script=script.py
如果我从控制台运行此命令,它就可以正常工作。如果我尝试用我的Popen
班级运行它,它会失败并显示错误消息:
/home/woltan/local/lib/python2.7/site.py:157: Warning: 'with' will become a reserved keyword in Python 2.6
'import site' failed; use -v for traceback
/home/woltan/local/lib/python2.7/linecache.py:127: Warning: 'with' will become a reserved keyword in Python 2.6
/home/woltan/local/lib/python2.7/site.py:157: Warning: 'with' will become a reserved keyword in Python 2.6
'import site' failed; use -v for traceback
ERROR: In /home/kitware/Kitware/ParaView-3.8.1/source/Utilities/VTKPythonWrapping/Executable/vtkPVPythonInteractiveInterpretor.cxx, line 75
vtkPVPythonInteractiveInterpretor (0x124e9d0): Failed to locate the InteractiveConsole object.
Paraview 本身正在启动。但是错误消息是因为 paraview 本身有一个它正在使用的 python 解释器吗?或者我可以调整我的Popen
调用例程,如下所示:
p = subprocess.Popen("paraview --script=script.py", bufsize = -1, shell = True)
怎么可能,可以从控制台创建进程,但不能使用Popen
上面的 -call?
编辑
我下载并安装了一个 paraview 版本,其中运行了 python 2.7(而不是我上面使用的版本的 python 2.5)和Popen
作品的调用。所以这一定和paraview的python版本有关。剩下的唯一问题是:为什么当我开始一个进程时它甚至很重要Popen
?