Mac OS系统如何在不同终端窗口分别运行多个Python脚本
Mac OS 下独立终端窗口同时运行多个Python脚本的实现方法
你之前用&后台运行的方式只会将任务挂在当前终端的后台,所有输出都会打印到同一个窗口,无法实现分窗口隔离,可通过以下方法实现需求:
方法1:直接执行AppleScript命令(临时使用)
在当前终端依次执行以下两行命令即可自动弹出两个独立终端窗口,分别运行对应脚本:
# 运行task1.py,注意替换为你脚本的实际绝对路径 osascript -e 'tell application "Terminal" to do script "python /Users/你的用户名/你的脚本目录/task1.py"' # 运行task2.py,注意替换为你脚本的实际绝对路径 osascript -e 'tell application "Terminal" to do script "python /Users/你的用户名/你的脚本目录/task2.py"'
执行后两个终端窗口完全独立,各自的运行日志、进程状态互不干扰,关闭对应窗口即可终止对应脚本的运行。
方法2:封装为一键执行脚本(频繁使用)
如果需要经常运行这两个脚本,可以封装为shell脚本简化操作:
- 新建名为
run_tasks.sh的文件,写入以下内容:
#!/bin/bash # 替换为你自己的脚本所在目录绝对路径 SCRIPT_DIR="/Users/你的用户名/你的脚本目录" # 替换为你实际使用的Python命令(比如虚拟环境路径下的python、python3等) PYTHON_CMD="python3" osascript -e "tell application \"Terminal\" to do script \"cd $SCRIPT_DIR && $PYTHON_CMD task1.py\"" osascript -e "tell application \"Terminal\" to do script \"cd $SCRIPT_DIR && $PYTHON_CMD task2.py\""
- 给脚本添加执行权限:
chmod +x run_tasks.sh
- 后续需要运行时直接执行以下命令即可:
./run_tasks.sh
特殊说明
- 如果你使用的是iTerm2而非系统自带终端,将对应命令中的
Terminal替换为iTerm即可 - 如果需要使用conda/venv等虚拟环境,可在执行Python脚本的命令前添加环境激活逻辑,示例:
osascript -e 'tell application "Terminal" to do script "cd /xxx/xxx && conda activate 你的虚拟环境名 && python task1.py"'
内容的提问来源于stack exchange,提问作者Yijiao Liu
相关产品推荐
相关产品推荐

