如何在python脚本中创建源工作区

2024-03-29 00:02:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用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')

Tags: pysrc脚本bashsource内容homebin
1条回答
网友
1楼 · 发布于 2024-03-29 00:02:16

os.system()启动一个新的shell,执行您传递给它的任何命令,然后再次关闭shell。随后创建的shell不受对该shell的任何更改的影响,例如更改工作目录或源代码

相关问题 更多 >