使用ProcessBuilder运行bash / python脚本

时间:2019-06-13 22:18:32

标签: python bash xtext xtend

我想通过使用ProcessBuilder运行bash脚本。这是我的xtend代码:

new ProcessBuilder().inheritIO().command("/bin/bash", "-c", "./myscript.sh")

这是我的bash脚本:

#!/bin/bash
python WebRoot/result.py

还有python代码:

#! /usr/bin/env python
import rospy
from std_msgs.msg import Empty
...

问题是我得到一个错误:

Traceback (most recent call last):
  File "WebRoot/result.py", line 2, in <module>
    import rospy
ImportError: No module named rospy

但是,当我通过终端手动运行代码时,它可以正常工作。

1 个答案:

答案 0 :(得分:0)

在命令行中运行它时,您可能会获得与在JVM中运行时不同的环境。在您的bash脚本中,尝试直接指向您打算使用的python版本。 JVM的env完全有可能指向不同版本的python。或环境未完全设置。

尝试放置完整路径,例如:

#!/bin/bash
/usr/bin/python2.7/python WebRoot/result.py