Python没有使用'subprocess'模块调用Jython

时间:2014-01-13 09:59:45

标签: python jython

我正在尝试从Python文件调用Jython脚本。

我有 Jython文件:testing.py ,其中包含:

print "Hello"

然后,我有 Python文件caller.py ,其中包含:

import subprocess
subprocess.call(['jython', 'testing.py'])

如果我执行调用jython脚本的python文件,我会收到错误:

Traceback (most recent call last):
  File "C:\Documents and Settings\Administrador\workspace\Interfaz\bashpython.py", line 3, in <module>
    subprocess.call(['jython', 'testing.py'])
  File "C:\Python27\lib\subprocess.py", line 486, in call
    return Popen(*popenargs, **kwargs).wait()
  File "C:\Python27\lib\subprocess.py", line 672, in __init__
    errread, errwrite)
  File "C:\Python27\lib\subprocess.py", line 882, in _execute_child
    startupinfo)
WindowsError: [Error 2] El sistema no puede hallar el archivo especificado

问题在于,如果我更改caller.py函数以将其调用到另一个Python函数而不是Jython函数,则可以正常工作(它会打印Hello字符串):

import subprocess
subprocess.call(['python', 'testing.py'])

我正在使用Eclipse Standard 4.3.1。和PyDev。
提前致谢

1 个答案:

答案 0 :(得分:0)

如果testing.pycaller.py位于同一文件夹中,则上述代码应该有效。但是如果它们不在同一个位置,那么很明显你必须提供文件的位置。

caller.py中的/home/reuben/caller.pytesting.py中的/home/reuben/Documents/testing.py。我在caller.py中给出了testing.py的完整路径。

subprocess.call(['jython', '/home/reuben/Documents/testing.py'])

这一切对我有用。