首页 > 解决方案 > 如何创建一个通用的 bash shell 来运行 PATH 中的任何 python?

问题描述

由于复杂的公司设置和我在 CI 管道和目标部署中使用的 venv,我需要我的 venv bin 中的 python 来运行 PATH 中的任何 python。我执行以下操作,但似乎以无限循环结束:

这是我的 $DEPLOYMENT_VENV/bin/python 的内容

#!bin/bash
python $@

默认使用的实际 python 是之前在 PATH 中设置的。

为什么这会导致无限循环或永远挂起?

标签: pythonbashshell

解决方案


如果pythonbash 找到的结果与$DEPLOYMENT_VENV/bin/python.

可能有几个原因:PATH终端中的变量值与执行脚本的环境中的值不同,等等。

要解决此问题,您应该修改临时$DEPLOYMENT_VENV/bin/python文件,以便添加 2 行以在临时文件中生成额外的调试日志消息/tmp/dbg-python.txt

#!/bin/bash
printf "DBG: " >>/tmp/dbg-python.txt 2>&1
type python >>/tmp/dbg-python.txt 2>&1
printf "\nDBG: PATH=%s\n" "${PATH}" >>/tmp/dbg-python.txt 2>&1
# python $@

再次测试。

文件的内容是什么/tmp/dbg-python.txt


推荐阅读