使用shell脚本,执行python文件
一般而言,执行一个python文件,需要先激活虚拟环境,再切换到对应的路径,在该路径下执行python文件。像这种重复性的命令,可以封装到一个shell脚本文件,执行一个shell脚本文件,就相当于操作多行命令。特别是一个项目中,可能要执行多个python文件的时候,这个封装就很有意义。
例子:
假如要执行一个Python文件,常规操作如下:
- 打开终端
- 激活虚拟环境(使用anoconda建立的虚拟环境,环境名称是py37):conda activate py37
- 切换路径:cd /usr/test/
- 执行python文件:python main.py
为了更便捷地操作,对步骤2~4进行封装,新建一个shell脚本文件,名为:start_py.sh,文件的具体内容如下:
conda activate py37
cd /usr/test/
python main.py
保存文件,退出
在终端上使用source执行shell脚本文件即可:
source start_py.sh
这就完成了封装。
注意!!!!!!!!!!!!!!!!!!!:
执行shell脚本文件时,一定是
source start_py.sh
不能是
bash start_py.sh
也不能是
sh start_py.sh
还不能是
./start_py.sh
其区别在于,source启动的shell脚本,是在父进程中继续运行的。而后面的3个启动方法,是新建子进程运行的,那样切换路径和激活虚拟环境就没有意义了。以前没留意它们的区别,导致我摸索了2个小时,感觉挺实用,就把这个经验分享给小伙伴们。