shell调用python

转载:https://zhuanlan.zhihu.com/p/363531715

 

一般而言,执行一个python文件,需要先激活虚拟环境,再切换到对应的路径,在该路径下执行python文件。像这种重复性的命令,可以封装到一个shell脚本文件,执行一个shell脚本文件,就相当于操作多行命令。特别是一个项目中,可能要执行多个python文件的时候,这个封装就很有意义。

例子:

假如要执行一个Python文件,常规操作如下:

  1. 打开终端
  2. 激活虚拟环境(使用anoconda建立的虚拟环境,环境名称是py37):conda activate py37
  3. 切换路径:cd /usr/test/
  4. 执行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个小时,感觉挺实用,就把这个经验分享给小伙伴们。

posted on 2022-06-09 15:31  该用户很懒  阅读(3004)  评论(0编辑  收藏  举报