shell调用python
转载:https://zhuanlan.zhihu.com/p/363531715
一般而言,执行一个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个小时,感觉挺实用,就把这个经验分享给小伙伴们。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
2021-06-09 hive beeline hivevar和hiveconf的区别
2021-06-09 用户提交任务到yarn报错