Я использую сценарий 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, два. py и three.py возвращают ошибку «sh: 1: источник: не найден». Я знаю, что это потому, что я использую эти строки:
os.system('cd /home/nvidia/catkin_ws')
os.system('source devel/setup.bash')
Для получения команд после него требуется поиск источников, как мне решить эту проблему? Я использую ROS Kineti c с Linux Ubuntu 16.04.
Содержимое one.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')
Содержимое two.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')
Содержимое of three.py
#!/bin/bash
import os
os.system('cd ~/catkin_astra')
os.system('source devel/setup.bash')
os.system('roslaunch astra_launch astra.launch')