我使用python脚本来运行四个不同的python脚本,每个脚本执行一个命令,目的是在启动时运行主python脚本。这是python主脚本中的内容:
#!/usr/bin/env/python
import os
os.system('x-terminal-emulator -e python ./one.py')
os.system('x-terminal-emulator -e python ./two.py')
os.system('x-terminal-emulator -e python ./three.py')
os.system('x-terminal-emulator -e python ./four.py')
当我运行它时,它确实创建了四个终端,并在每个终端中执行每个.py,但是one.py、two.py和three.py返回一个错误“sh:1:source:not found”。我知道这是因为我使用了以下几行:
os.system('cd /home/nvidia/catkin_ws')
os.system('source devel/setup.bash')
需要进行寻源,以便在之后执行命令,如何解决此问题?我在Linux Ubuntu 16.04中使用ROS Kinetic
1.py的内容
#!/bin/bash
import os
os.system('cd /home/nvidia/catkin_ws')
os.system('source devel/setup.bash')
os.system('roslaunch pocketsphinx continuous.launch spdict:=/home/nvidia/catkin_ws/src/pocketsphinx/demo/speaker_test.dic spkws:=/home/nvidia/catkin_ws/src/pocketsphinx/demo/speaker_test.kwlist sphmm:=/home/nvidia/catkin_ws/src/pocketsphinx/demo/speaker_verification/an4.ci_cont_adapt/ dict:=/home/nvidia/catkin_ws/src/pocketsphinx/demo/keywords_spk_verification.dic kws:=/home/nvidia/catkin_ws/src/pocketsphinx/demo/keywords_spk_verification.kwlist gram:=/home/nvidia/catkin_ws/src/pocketsphinx/demo/asr_spk grammar:=asr rule:=rule sp_verif:=false')
2.py的内容
#!/bin/bash
import os
os.system('cd /home/nvidia/catkin_ws')
os.system('source devel/setup.bash')
os.system('rosrun pocketsphinx execute_commands.py')
3.py的内容
#!/bin/bash
import os
os.system('cd ~/catkin_astra')
os.system('source devel/setup.bash')
os.system('roslaunch astra_launch astra.launch')
os.system()
启动一个新的shell,执行您传递给它的任何命令,然后再次关闭shell。随后创建的shell不受对该shell的任何更改的影响,例如更改工作目录或源代码相关问题 更多 >
编程相关推荐