如何用Shell脚本按序执行Python脚本并激活虚拟环境?
你的Shell脚本运行说明及优化建议
运行步骤
直接输入./execute.sh可以运行,但得先给脚本添加执行权限,在终端执行这条命令:
chmod +x execute.sh
加完权限后就能正常用./execute.sh启动脚本了。
脚本里的几个注意点
- 路径容易踩坑:你写的
path/file_1.py这类是相对路径,得保证你执行./execute.sh时的终端工作目录,和这些Python脚本的相对位置匹配,不然会找不到文件。最稳妥的是换成绝对路径,或者在脚本开头先切换到Python脚本所在的目录,比如加一行cd /你所有Python脚本的绝对路径。 - 虚拟环境的Python调用:激活虚拟环境后,尽量用
python3代替python,避免和系统自带的Python版本混淆——有些系统里虚拟环境激活后python会指向虚拟环境的版本,但用python3更保险。 - 失败不中断的问题:当前脚本如果前面的Python脚本报错退出,后面的脚本还会继续执行。要是想让前面的脚本执行成功后才往下走,就在
#!/bin/sh下面加一行set -e,这样只要有命令失败,整个脚本就会停止运行。
优化后的参考脚本
#!/bin/sh # 开启错误中断,前面命令失败则停止脚本 set -e # 切换到Python脚本所在的绝对目录(替换成你实际的路径) cd /absolute/path/to/your/python/scripts # 执行前三个脚本 python3 file_1.py python3 file_2.py python3 file_3.py # 激活虚拟环境并执行第四个脚本 source /path/env/bin/activate python3 file_4.py
内容的提问来源于stack exchange,提问作者user20768820
相关产品推荐
相关产品推荐

